home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Cream of the Crop 1
/
Cream of the Crop 1.iso
/
OS2
/
PMCOM109.ARJ
/
PMCOMM.INF
(
.txt
)
< prev
next >
Wrap
OS/2 Help File
|
1991-09-04
|
82KB
|
3,771 lines
ΓòÉΓòÉΓòÉ 1. Installation Help ΓòÉΓòÉΓòÉ
When Pmcomm is shipped there are two different versions on the disk. The two
versions are Pmcomm version 1.05 and 1.09. The 1.09 version is to be used if
using a copy of OS/2 that is 1.2 or later. For OS/2 1.1 Pmcomm 1.05 must be
used. The two directories on the disk are Pmcom105 and Pmcom109, copy the
appropriate directory to your hard drive. Also, copy RxPmcomm.dll into a .dll
directory (i.e. C:\os2\dll).
Pmcomm can be run from a command line by typing pmcomm, but it is recommended
that it be installed in a "Group". To do this access the Program menu on the
"Group" menu and chose the New option. This will bring up a dialog box where
the following information must be entered.
Program title: Pmcomm
Path and filename: user_specified_path\pmcomm.exe
Parameters: setup.dat
Working directory: user_specified_path
Program type: Presentation Manager
The final step is to select the Add option at the bottom of the dialog box.
Note: setup.dat will be created if not in existence.
There is a program called timer.exe in the Pmcom109 directory that will allow
you to execute Pmcomm at specifed times. This will allow you to set up a script
to have Pmcomm dial numbers at certain times and capture mail, download files,
ect.
To install Pmcomm's Host Mode see Installing_Pmcomm_Host_Mode.
ΓòÉΓòÉΓòÉ 2. Extended Help ΓòÉΓòÉΓòÉ
There is a collection of utilities in the File section such as; Scripts,
Capture, Print, Copy, and Paste. There is also an About box that has
information on Multi-Net Communications, the company that wrote this software.
In the Edit section there are commands such as Copy, Paste, and Clear_Screen.
These commands will help you manipulate on-screen information.
The Connect command allows you to connect to another computer, either through a
modem, using the Dial command or direct connect, using the Send_Break command.
Transfer allows the use of different protocols to send and receive files to or
from a remote computer. The protocol options are Xmodem_Checksum, Xmodem_CRC,
1K-Xmodem, Ymodem(batch), Ymodem-g(batch), Zmodem, Kermit, CISB, ASCII, and
IND$FILE (for downloads). Zmodem is probably the best selection when available
on the remote computer. Ymodem-G should only be used with error correcting
modems.
Hang-up sends the hang-up command string (see the Option menu) and optionally
drops the DTR line to the modem. Dropping DTR is the most effective if your
modem is setup to hang-up when DTR is dropped. Using a hang-up string is also
slower, because Pmcomm has to get the modem into the command state before
sending the hang-up string. If you have DTR on and delete the hangup string the
hang-up will be much faster.
Option allows you to tailor Pmcomm to your own tastes. The areas in option are
Port, Dial_Setup, Modem, Protocols, Paths, Macros_Setup, Screen, Status_Line,
Terminal, and Chat. The setup is not automatically saved. This allows you to
change things temporally without changing your default setup file. If you do
want to make the changes permanent be sure to save the setup file. To save the
current setup file, use the Save_setup command under the File menu option.
Macros allows you to pick, with a mouse, the macro you wish to send. Macros can
also be selected with an Alt+corresponding number keystroke. Pmcomm allows you
to set up ten different macros. Scripts can be executed from macros by using
the shell command. An example of this would be:
shell("c:\pmcomm\plane.cmd");
This would execute the REXX script called plane.cmd. This allows you a quick
and easy way to execute often used scripts.
ΓòÉΓòÉΓòÉ 2.1. Keys Help ΓòÉΓòÉΓòÉ
The following is a list of "Hot keys" available.
F1 = Help.
F3 = Exit.
Alt-D = Dialing directory.
Alt-H = Hangup.
Alt-Q = Dial Queue entries.
Alt-X = Exit.
Ctrl-Break = Send break.
Ctrl-Insert = Copy.
Shift-Insert = Paste.
Page-Dn = Download.
Page-Up = Upload.
Print Scrn = Prints text in the visible
window (full line length).
The up and down arrow keys default to scrolling the window. You can change
this in the setup terminal dialog box so that when in ANSI mode the arrow keys
will be sent to the modem.
In VT100 mode, some keys have been changed to try to closely emulate the VT100
keyboard. F1-F4 are now the PF keys. Because of this the F1 key will not
display the normal help, and F3 will not exit the program. The PF keys will
send the following characters:
F1 = ESCOP
F2 = ESCOQ
F3 = ESCOR
F4 = ESCOS
Where ESC is equal to the ASCII character hex 1B. All other hot keys will not
be available. When the num lock key is off the numerical key pad will be in
the application mode. If you are connecting to a VT220 Host you can use these
keys to send the VT220 PF key values. For example pressing the 1 on the
numeric key pad will send the VT220 PF1 key. Pressing the 3 on the numeric key
pad will send the VT220 PF3 key, and so on. With the num lock on the numbers
will be sent. The plus key has been re-mapped to be a comma, again to be
compatible with the VT100 keyboard.
ΓòÉΓòÉΓòÉ 3. File ΓòÉΓòÉΓòÉ
There is a collection of utilities in this section such as; Save_setup,
Scripts, Capture, Print, Copy, and Paste. There is also an About box that has
information on Multi-Net Communications, the company that wrote this software.
ΓòÉΓòÉΓòÉ 3.1. Save Setup ΓòÉΓòÉΓòÉ
Saves user definable configurations as well as screen size and position.
ΓòÉΓòÉΓòÉ 3.2. Capture ΓòÉΓòÉΓòÉ
Capture saves everything that is received from the modem to a file. For
example, you can capture all new messages and then read them after you hang
up. If you specify PRN as the filename everything will be captured to the
printer. If you have Monitor_DCD selected then the capture file will be closed
when you log off. This will happen if you started the capture file from the
menu or from a internal script.
ΓòÉΓòÉΓòÉ 3.2.1. Start Capture ΓòÉΓòÉΓòÉ
You will be prompted for a file name and then everything that comes in from the
modem will be saved to that file. If PRN is selected then everything will be
sent to the printer. If the file exists you will be asked if you wish to
overwrite the file. If you select no, the new information will be appended to
the end of the file. Select cancel if you wish to abort the capture.
You may also start the capture by clicking on the disk drive icon located on
the Status_Line.
ΓòÉΓòÉΓòÉ 3.2.2. Cancel Capture ΓòÉΓòÉΓòÉ
This command will turn off capture. This command will only work if capture was
started with the Start_Capture command.
You may also cancel the capture command by clicking on the disk drive icon
located on the Status_Line.
ΓòÉΓòÉΓòÉ 3.3. Scripts ΓòÉΓòÉΓòÉ
Scripts allow you to have the computer perform certain tasks automatically. The
internal commands available are:
wait_for
puts
sleep
call
capture_on
capture_off
shell
The REXX commands that are available are:
init_dll
setcom
sendb
dcd
char_avail
read_timeout
Get_ch
ring_detect
drop_dtr
raise_dtr
Wait_for
Wait_fore
Put_s
Sleep
beep
get_cursor_position
get_char_at
capture_on
capture_off
xmodem_send
xmodem_receive
xmodem_chk_send
xmodem_chk_receive
xmodem_1k_send
xmodem_1k_receive
ymodem_send
ymodem_receive
ymodemg_send
ymodemg_receive
zmodem_send
zmodem_receive
kermit_send
kermit_receive
ascii_send
ascii_receive
cisb_send
cisb_receive
set_download_path
os2_shell
The 'C' library commands that are available are:
init_lib
setcom
sendb
dcd
char_avail
read_timeout
get_ch
ring_detect
drop_dtr
raise_dtr
wait_for
wait_fore
put_s
sleep
beep
get_cursor_position
get_char_at
capture_on
capture_off
xmodem_send
xmodem_receive
xmodem_chk_send
xmodem_chk_receive
xmodem_1k_send
xmodem_1k_receive
ymodem_send
ymodem_receive
ymodemg_send
ymodemg_receive
zmodem_send
zmodem_receive
kermit_send
kermit_receive
ascii_send
ascii_receive
cisb_send
cisb_receive
set_download_path
os2_shell
The scripts command is only available in the commercial version of Pmcomm.
ΓòÉΓòÉΓòÉ 3.3.1. Start Scripts ΓòÉΓòÉΓòÉ
With this command you can start a pre-written script at any time, just enter
the file name of the script when prompted. If only the file name is entered,
the script path will be searched for the file. Full path and file names are
allowed.
You may also start a script be clicking on the book icon located on the
Status_Line.
ΓòÉΓòÉΓòÉ 3.3.2. Script Dialog ΓòÉΓòÉΓòÉ
The Script Dialog displays information and options about the current script.
When the dialog is displayed you have the option of either aborting the script,
closing the dialog box, or skipping the currently executing command.
ΓòÉΓòÉΓòÉ 3.3.3. Cancel Script ΓòÉΓòÉΓòÉ
This command is used to stop a script that is already running. The script will
be canceled at the time this is selected unless the script is at a sleep
command. In this case the script will stop after the sleep time interval has
expired.
You may also cancel a script by clicking on the book icon located on the
Status_Line.
ΓòÉΓòÉΓòÉ 3.3.4. Start Script Generator ΓòÉΓòÉΓòÉ
This is the command that executes Pmcomm's script generator. The script
generator will write a script in either REXX or Internal script syntax. If you
want a script that will log you on to a BBS turn the script generator on and
log on normally. Once finished logging on cancel the script generator. You now
have a script that will log you onto that BBS.
You may also start the script generator by clicking on the generator icon
located on the Status_Line.
ΓòÉΓòÉΓòÉ <hidden> Filename ΓòÉΓòÉΓòÉ
Pmcomm allows you to choose either a path and filename or just the filename. If
only the filename is entered, Pmcomm will use the script directory that is
setup under the Paths option. Be sure that all REXX scripts have an extension
of .cmd and all Internal scripts have an extension of .scr. If these extensions
are not used Pmcomm will create the script but the script will not be able to
be executed.
ΓòÉΓòÉΓòÉ <hidden> Description ΓòÉΓòÉΓòÉ
This description will appear as the first line of the script. The description
will hopefully avoid any confusion about the purpose of the script a later
date.
ΓòÉΓòÉΓòÉ <hidden> REXX Script ΓòÉΓòÉΓòÉ
This will create a script using the REXX language. The filename must have an
extension of .cmd in order for it to be executed by the REXX interpreter. A
REXX script will execute a little slower than an Internal script, but it is
more flexible.
ΓòÉΓòÉΓòÉ <hidden> Internal Script ΓòÉΓòÉΓòÉ
This will create a script using Pmcomm's Internal script syntax. The filename
must have an .scr extension in order for it to be executed by Pmcomm.
ΓòÉΓòÉΓòÉ <hidden> Number of Characters in wait_fore ΓòÉΓòÉΓòÉ
The Number of Characters in wait_fore will decide the length of the wait_fore
statements. The default is 10 characters which for most purposes will be
adequate.
ΓòÉΓòÉΓòÉ 3.3.5. Cancel Script Generator ΓòÉΓòÉΓòÉ
This command turns of the script generator. You can also cancel the script
generator by clicking on the generator icon located on the Status_Line.
ΓòÉΓòÉΓòÉ 3.4. Log File ΓòÉΓòÉΓòÉ
Logging writes to a file named pmcomm.log in the main pmcomm directory. The
type of information written is the time, date and name of the number called.
The time, date, cps and name of files transferred will also be saved. If you
are setup to monitor DCD the time and date of when the call was terminated
will also be recorded.
ΓòÉΓòÉΓòÉ 3.4.1. Start Logging ΓòÉΓòÉΓòÉ
The file named pmcomm.log in the main pmcomm directory will be opened. Any
logging information will be appended to the end of the file.
ΓòÉΓòÉΓòÉ 3.4.2. Cancel Logging ΓòÉΓòÉΓòÉ
The log file will be closed and no other information will be written to the log
file until it is re-opened using the Start Log option.
You may also cancel logging by clicking on the log icon located on the
Status_Line.
ΓòÉΓòÉΓòÉ 3.5. File Import ΓòÉΓòÉΓòÉ
This command copies a file from disk and sends it to a remotely connected
computer. This can be handy for sending previously saved files as messages, or
during a chat session. At times this is handier then using the clipboard. The
delay time specified in the file import delay parameter under Options,
Protocols, will pause the specified number of seconds after each line has been
sent. This can be useful if the receiver can not process the information as
fast as Pmcomm can send it.
ΓòÉΓòÉΓòÉ 3.6. Print ΓòÉΓòÉΓòÉ
Print allows you to send information that was previously received out to the
printer. You can either send the information that is displayed on the visible
part of the window, or you can print the whole scroll back buffer. The print
function uses PRN as the device name for printing.
ΓòÉΓòÉΓòÉ 3.6.1. Print visible screen ΓòÉΓòÉΓòÉ
This command can also sent by pressing the Print Screen key. When Pmcomm
receives this message it prints all of the lines on the visible part of the
screen.
ΓòÉΓòÉΓòÉ 3.6.2. Print buffer ΓòÉΓòÉΓòÉ
When this is selected all of the scroll back buffer is sent out to the printer.
There are about 240 lines available in the scroll back buffer, so this command
may take awhile to complete. This does not mean that you can't do anything
else. Pmcomm will print in the background while you go on.
ΓòÉΓòÉΓòÉ 3.6.3. Print selected ΓòÉΓòÉΓòÉ
This will print previously selected text (by using the mouse) to the PRN
device.
You may also print any selected text by clicking on the printer icon located on
the Status_Line.
ΓòÉΓòÉΓòÉ 3.6.4. Print continuous ΓòÉΓòÉΓòÉ
This will print everything that comes in from the com port to the PRN device.
Start continuous printing
This will start continuous printing. Everything will be printed to the PRN
device. It is not recommended that you use this command unless you have the
OS/2 print spooler active.
You may also start continuous printing by clicking on the printer icon located
on the Status_Line.
Cancel continuous printing
This will cancel printing, that was started with the Start continuous printing
command.
You may also cancel continuous printing by clicking on the printer icon located
on the Status_Line.
ΓòÉΓòÉΓòÉ 3.7. About ΓòÉΓòÉΓòÉ
The about box has information about this program, such as BBS support telephone
number, company name, version number, serial number, and copyright information.
ΓòÉΓòÉΓòÉ 3.8. Exit ΓòÉΓòÉΓòÉ
Ends current session with Pmcomm. Pmcomm closes the comport when exiting which
drops DTR. The hang-up string is also sent to the modem.
ΓòÉΓòÉΓòÉ 4. Edit ΓòÉΓòÉΓòÉ
In this section there are commands such as Copy, Paste, and Clear_Screen.
ΓòÉΓòÉΓòÉ 4.1. Copy ΓòÉΓòÉΓòÉ
Copy transfers information from the screen and places it into the Clipboard.
Other applications, such as a word processor, can then use this information.
ΓòÉΓòÉΓòÉ 4.2. Paste ΓòÉΓòÉΓòÉ
Paste, copies information from the clipboard and sends it out to the modem.
Care must be taken that the information sent can be handled by the remote
computer. A use for this command would be that you could enter a message in a
word processor, copy that message into the clipboard and then paste it into
Pmcomm.
ΓòÉΓòÉΓòÉ 4.3. Clear Screen ΓòÉΓòÉΓòÉ
Clears the whole screen including the scroll back buffer and resets the
attribute to the attribute defined in the setup area.
ΓòÉΓòÉΓòÉ 5. Connect ΓòÉΓòÉΓòÉ
This command allows you to connect to another computer, either through a modem,
using the Dial command or direct connect, using the Send_Break command.
ΓòÉΓòÉΓòÉ 5.1. Dial ΓòÉΓòÉΓòÉ
Dial uses a dialing_directory to store phone numbers and other information
about the computer.
ΓòÉΓòÉΓòÉ 5.1.1. Dial Dialog Help ΓòÉΓòÉΓòÉ
The dial dialog box allows you to add, select, modify, or delete entries in the
current dialing directory. An entry can also be selected to be automatically
selected (or optionally dialed) when Pmcomm is first started.
To add an entry, select the add button in the dialog box. You will then be
prompted to enter the name of the new entry. The directory will be sorted and
the new entry will be selected. The cursor will be positioned at the number
entry field so that the number for the new entry can be entered. After the
number has been entered, pressing the enter key will save the dialing directory
and dial the number(s). Pressing the tab key will allow you to edit the other
fields.
To select a number, using a mouse, "click" on the number (or numbers) that you
wish to dial. To de-select an entry "click" on the number once again. If you
are not using a mouse the arrow keys will move the highlight bar through the
directory. To select your choices press the space bar, a second time will
de-select the entry, then press enter. Multiple entries may be selected. This
will form a dialing queue, in which Pmcomm will dial the selected entries until
a connection is made.
To modify an entry, select the entry to be edited and then use the tab key to
move the cursor to the field you wish to change. Use the Change button to
change the name of an entry. Pressing the save button will save the
modifications to the disk.
To change a name, select the entry to be edited and then use press the change
button. The change will automatically be saved to the disk.
To delete an entry, select the entry to be deleted and select the delete button
in the dialog box.
CAUTION:
If multiple entries are selected, only the first selected entry will be
deleted.
The dial dialog box can also be accessed by clicking on the phone icon on the
Status_Line.
ΓòÉΓòÉΓòÉ 5.1.2. Dial Prefix ΓòÉΓòÉΓòÉ
Pmcomm sends the selected dial prefix to the modem before sending the phone
number. The default string for the prefixes is ATDT which tells the modem to
dial using tone (ie. touch tone). If your phone system does not support touch
tone then you could use the ATDP command. Pmcomm allows you to setup multiple
prefixes, so that if you need to dial a special code for long distance calls
you can set up a separate prefix for those calls.
ΓòÉΓòÉΓòÉ 5.1.3. Dial Suffix ΓòÉΓòÉΓòÉ
Pmcomm sends the selected dial suffix to the modem after sending the phone
number. The default string for the suffixes is ^M which is a carriage return
and line feed.
ΓòÉΓòÉΓòÉ 5.1.4. Automatically Selected ΓòÉΓòÉΓòÉ
If a dialing entry is marked as being automatically selected then each time
Pmcomm is started this entry will be selected to be dialed. You can have as
many entries automatically selected as you want, and this will form a dialing
queue. A dialing queue allows you to try the first number and if it is busy it
will then dial the next number in the queue. If the Dial Auto Selected Entries
on program Startup is selected then any entries in the dialing directory that
are marked as auto selected, will automatically be dialed. This option will
allow you to automatically dial selected numbers when Pmcomm is first invoked.
ΓòÉΓòÉΓòÉ 5.1.5. Dial List Box ΓòÉΓòÉΓòÉ
The Dial List Box is a multiple selection list box. This means that you can
select more then one entry at a time. The information on the right side of the
Dialog Box is on the first item selected. The reason for using a multiple
selection list box, is that you can select more than one item and these items
will be dialed in order. For example, if the first number selected is busy then
Pmcomm will dial the next number selected. If all selected numbers are busy,
Pmcomm will start over again. If you have multiple items selected and select
the Delete button, only the first item will be deleted. If an item is selected
and you double click on that item then the selected items will be dialed.
ΓòÉΓòÉΓòÉ 5.1.6. Baud Rate ΓòÉΓòÉΓòÉ
In the Dialing Dialog Box you can enter any baud supported by the device driver
you are using. Currently the maximum baud rate supported by the device driver
included with OS/2 is 19200. Commonly used baud rates are: 300, 1200, 2400,
9600, and 19200. There are some device drivers currently available that support
up to 38400. To enter a baud rate, type in a valid baud rate. The com port will
be set to this value when the phone number is dialed. In the Port Options
Dialog Box the above mentioned baud rates can be selected by using the radio
buttons.
ΓòÉΓòÉΓòÉ 5.1.7. Parity ΓòÉΓòÉΓòÉ
The supported parities are: None, Even, Odd, Marked, and Space. To enter a
parity, type in one of the above words. The two most widely used parities are
None and Even. If you are calling most BBS's you would want to enter None, but
most packet networks (such as CompuServe and Telenet) normally require Even
parity.
ΓòÉΓòÉΓòÉ 5.1.8. Data Bits ΓòÉΓòÉΓòÉ
Currently supported data bits are 5, 6, 7, and 8. The most popular values are 7
and 8. For most BBS's 8 data bits are necessary, however, for systems such as
CompuServe, 7 data bits are required.
ΓòÉΓòÉΓòÉ 5.1.9. Stop Bits ΓòÉΓòÉΓòÉ
Currently supported stop bits are 1 and 2. Most systems will require 1 stop
bit.
ΓòÉΓòÉΓòÉ 5.1.10. Dial Script ΓòÉΓòÉΓòÉ
The script name can be up to 12 characters long. The script must be in the
script path (see Paths for more information). Any REXX script, Internal script,
or any OS/2 executable can be executed. Once Pmcomm is connected to the remote
computer this script will be executed.
ΓòÉΓòÉΓòÉ 5.1.11. Dial Terminal ΓòÉΓòÉΓòÉ
The currently available terminal emulations are TTY, ANSI, and VT100. Pmcomm
will switch to the terminal emulation listed once connected to the remote
computer.
ΓòÉΓòÉΓòÉ 5.2. Send Break ΓòÉΓòÉΓòÉ
Initializes a connection with another computer through a protocol converter.
ΓòÉΓòÉΓòÉ 6. Transfer ΓòÉΓòÉΓòÉ
Transfer allows the use of different protocols to send and receive files from a
remote computer. The protocol options are Xmodem_Checksum, Xmodem_CRC,
1K-Xmodem, Ymodem(batch), Ymodem-g(batch), Zmodem, Kermit, CISB, and ASCII.
Zmodem is probably the best selection, when available on the remote computer.
Ymodem-G should only be used with error correcting modems.
IND$FILE is available for downloads using the VT100 terminal emulation only.
CAUTION:
IND$FILE currently does not have any error detection available in Pmcomm.
ΓòÉΓòÉΓòÉ 6.1. Download ΓòÉΓòÉΓòÉ
The download command brings up a dialog box for you to select the proper
protocol. If the protocol selected is not a batch protocol ( ASCII,
Xmodem_Checksum, Xmodem_CRC or 1K-Xmodem ) you will be prompted for a filename.
If you have Auto-Zmodem or Auto_CISB selected in the protocol options area,
Pmcomm will automatically start transferring as soon as the remote computer
starts to send. Zmodem is not available in the demonstration version.
ΓòÉΓòÉΓòÉ 6.2. Upload ΓòÉΓòÉΓòÉ
When sending a file to a remote computer you must select the same protocol that
the remote computer will use to receive the file. After selecting the proper
protocol, a file open dialog box will have you select the file you wish to
send. You can either double click on the file name or select the file and click
on the OK button. If you have Auto_CISB selected in the protocol options area,
Pmcomm will automatically start the transfer as soon as the remote computer
sends the transfer request. With a CISB transfer the filename is specified on
the host and the file open dialog box is not displayed.
You may also use the drag and drop feature of Pmcomm. When files are dragged
from the file manager and dropped onto Pmcomm, the transfer protocol that is
listed for that phone number will be invoked and the file(s) will be sent to
the remote computer. If you have Monitor_DCD selected then drag options will
not be allowed until connected with another computer.
To drag files from the file manager, select a file (or files) and then click on
the selected file(s) with the RIGHT mouse button and hold the button down. Once
you have begun to drag the files with the mouse the mouse pointer will change
shape. If the mouse pointer is over a program that does not accept drag and
drop the pointer will again change shape. When the mouse pointer is over any
part of Pmcomm you can release the right mouse button. This will drop the files
onto Pmcomm and Pmcomm will send them. This will even work if Pmcomm is an
icon.
To change the protocol for the current phone number, select upload from the
menu and then select the protocol you want (make sure that the save to dialing
directory is selected). After pressing the OK button the file open dialog box
will be displayed. Just press cancel and you can now use the drag and drop with
the new protocol.
If a file is dropped onto Pmcomm while it is an icon in a group menu, this file
will be used as a setup file, and Pmcomm will be invoked.
ΓòÉΓòÉΓòÉ 6.2.1. Xmodem Checksum ΓòÉΓòÉΓòÉ
Xmodem Checksum is one of the oldest protocols around and some people still use
it exclusively. It is a moderately fast protocol that has fairly good error
detection.
ΓòÉΓòÉΓòÉ 6.2.2. Xmodem CRC ΓòÉΓòÉΓòÉ
Xmodem CRC and Xmodem_Checksum are similar except CRC has better error
detection then Checksum. Almost anywhere you call will offer at least one of
these protocols.
ΓòÉΓòÉΓòÉ 6.2.3. 1k-Xmodem ΓòÉΓòÉΓòÉ
1k-Xmodem uses the same error detection as Xmodem_CRC, but uses 1024 byte
blocks instead of 128 byte blocks. This allows for greater throughput (higher
characters per second) with roughly the same error detection.
ΓòÉΓòÉΓòÉ 6.2.4. Ymodem ΓòÉΓòÉΓòÉ
Ymodem uses the same error detection and block size as 1k-Xmodem but is a batch
protocol. This means that in the first block the file size and name are sent.
This keeps the receiver from having to type in the filename. It also allows you
to send more then one file without have to start the transfer again. This
protocol is second to Zmodem, in our opinion, when using non-error correcting
modems.
ΓòÉΓòÉΓòÉ 6.2.5. Ymodem-g ΓòÉΓòÉΓòÉ
Ymodem-g is identical to Ymodem except it has no error correction. If an error
is detected the transfer aborts. Because of this Ymodem-g should only be used
with error correcting modems. Pmcomm will allow you to use this protocol
anytime, but again care should be taken on what hardware it is used with. With
the proper hardware Ymodem-g has the fastest cps (characters per second).
ΓòÉΓòÉΓòÉ 6.2.6. Zmodem ΓòÉΓòÉΓòÉ
Zmodem is almost as fast as Ymodem-g, however Zmodem does support error
correction and file recovery. It only takes one aborted Ymodem-g transfer to
lose all it's advantages. Zmodem has many advantages as far as the user is
concerned. It is probably the easiest protocol to use. If using Pmcomm with the
Auto-Zmodem download feature, the whole download is done automatically from the
Pmcomm end. You have to select the file from the sender (BBS etc..) and once
the sender starts sending, the transfer will begin on Pmcomm. It may take a
moment before the sender sends the first sequence, so wait a moment. Some of
the advanced features of Zmodem are listed below. Zmodem supports:
1. CRC-32 and CRC-16. The additional error detection of 32 bit CRC is
supported.
2. File recovery. If a Zmodem download is aborted for any reason the transfer
will resume at the point where it was aborted. You don't have to start
the whole transfer over.
3. Auto-Download. When a Zmodem sending program starts up it first sends a rz
and then a carriage return. Pmcomm will monitor for the startup sequence
and automatically start the Zmodem download. Great care has been taken to
make sure that it really is a Zmodem transfer and not someone typing it in
at the keyboard (at either end). This feature makes downloading with
Zmodem much faster and much easier.
4. Variable length headers. This reduces the amount of overhead that accrues
with sending Zmodem headers. This is only used if supported by both the
sender and receiver.
5. RLE encoding. Run length encoding is a form of file compression. Instead
of sending 20 spaces it will send a space and the number 20. The receiver
will then decompress it. Because of the multi-thread (tasking)
capabilities of OS/2 this works much better then with DOS. This also is
only used if supported by both the sender and receiver.
6. Variable length receive buffers. Some Zmodem receive programs have
problems with writing to the disk and receiving from the comport at the
same time. If necessary Zmodem will wait for an ACK from the receiver
after the specified buffer size has been sent. This will only be done if
it is requested by the receiver requests it.
7. Retains original file size. Some people say that because Zmodem headers
are larger that there is two much overhead. This really isn't the case.
For example if comparing Zmodem to Ymodem-g (full flow Ymodem), Ymodem-g
has less overhead with each packet. However Ymodem-g rounds the file size
up to an even 128 byte size. In some cases it is even rounded up 1024
bytes. This is done because Ymodem (g or otherwise) only supports two
block sizes, 128 and 1024 (the block size is actually 133 and 1029 to
allow for the block header, STX or SOH, and the CRC value), so it has to
send full blocks. However, Zmodem uses variable block sizes. The block
sizes adjust from 32 bytes to 1024 bytes. If telephone line quality is
poor smaller blocks are sent so that if an error does occur less data will
have to be resent. As the line quality improves the size of the blocks
will be increased. The starting block size is variable depending on the
connected baud rate.
8. Error recovery. Because Zmodem can resend from any place in the file,
aborted transfers are rare.
By reading this you can tell our favorite protocol is Zmodem. Once you have
used Zmodem it's hard to get used to using other protocols.
ΓòÉΓòÉΓòÉ 6.2.7. ASCII ΓòÉΓòÉΓòÉ
The ASCII protocol can be used to transfer text files. There is no error
detection or correction available with this protocol. It is recommended that
one of the other protocols be used, even with text files.
ΓòÉΓòÉΓòÉ 6.2.8. CISB ΓòÉΓòÉΓòÉ
The CIS B protocol can be used to transfer files to and from CompuServe.
CompuServe B, B+ and Quick B are supported. Quick B is the fastest variant of
the B protocol and is automatically selected when it is supported on the host
computer. The CIS B protocol is an automatic protocol where the host initiates
the transfer and Pmcomm will automatically go into the send or receive mode. If
you are sending a file, the file must exist in the download directory of
Pmcomm. If Pmcomm is unable to find the file then the transfer will abort.
Pmcomm can be configured to ignore the CIS B protocol by de-selecting the
Automatic CIS B option in the Protocol Option Dialog. Pmcomm may run slightly
faster in terminal mode without this selection. Under most systems the
difference will not be detectable.
Another option for CIS B is for file recovery. What this option will do is if
you started a download and aborted the transfer you can then re-start the
transfer and CIS B will resume from the place where it was aborted. This can be
very handy in poor phone line conditions. The packet size for CIS B is adjusted
by the connecting baud rate. For example, if you are connected to CompuServe at
2400 baud the packet size will be 1024 bytes. If you connect at 1200 baud the
packet size will be 512 bytes. This allows for speedy error recovery in case a
error occurs because of phone line noise. Downloads will automatically be
placed in the Pmcomm download directory and the download directory will
automatically searched for any uploaded files. If you specify a path with the
filename when CompuServe asks for a filename for your computer, then this path
will be used. CIS B should be the protocol used when transferring files to and
from CompuServe.
ΓòÉΓòÉΓòÉ 6.2.9. Kermit ΓòÉΓòÉΓòÉ
Kermit is the slowest protocol offered here and should only be used when no
other protocol is available. Kermit does have advantages and it is offered on
many mini-computers as well as mainframes. Kermit will also transfer binary
files when connected at 7,E,1. The maximum packet size that is allowed is 94
bytes which is one of the reasons that makes Kermit slow. There is a variation
of Kermit that allows larger packet size, but it is not implemented in Pmcomm.
Kermit allows batch transfers, both in sending and receiving, and will attempt
to preserve the file names. If Pmcomm gets an error when trying to create the
file name received from the sender it will convert it to a "8.3" type of file
name. Kermit allows variable packet sizes so the original file size is
maintained.
Pmcomm allows you to change the "End of Line" character (also called end of
packet), the "Quoting character" (sent before control codes), the "pad
character", and the number of pad characters you want. You can also tell Pmcomm
to force an 8 bit transfer even if it is on at 7,E,1. This comes in handy if
you are downloading files from Compu-Serve. If this option is not selected and
you are on at 7 data bits, Pmcomm will use what is called the 7 bit quoting.
The 7 bit quote character that Pmcomm uses is a &.
ΓòÉΓòÉΓòÉ 6.2.10. IND$FILE ΓòÉΓòÉΓòÉ
IND$FILE currently is only supported under VT100 terminal emulation through a
3708 protocol converter. Because of problems with character conversion through
the protocol converter error detection is not currently available. Because of
this, files received using IND$FILE maybe CORRUPTED! Use this protocol at your
own risk! IND$FILE is not a very efficient protocol because every byte that is
transferred must be checked to see if it will pass through a 7 bit data stream
and escaped if it will not. This can greatly reduce the amount of data that can
be sent in each packet.
ΓòÉΓòÉΓòÉ <hidden> PC File Name ΓòÉΓòÉΓòÉ
This is the file name which will be used on the receiver. If a full path and
file name are used the file will reside at that address. If just a file name is
specified the file will be stored in the upload directory set in the Paths menu
option. This file name must be specified or the transfer will not work.
ΓòÉΓòÉΓòÉ <hidden> Host File Name ΓòÉΓòÉΓòÉ
This is the file name as it resides on the Host. If this filename is not
specified, Pmcomm will default to the PC File Name as the Host File Name.
ΓòÉΓòÉΓòÉ <hidden> Binary ΓòÉΓòÉΓòÉ
This option will tell the Host to send the file as a Binary file.
ΓòÉΓòÉΓòÉ <hidden> Ascii ΓòÉΓòÉΓòÉ
This option will tell the Host to send the file as an Ascii file.
ΓòÉΓòÉΓòÉ <hidden> CRLF ΓòÉΓòÉΓòÉ
This option will tell the Host to send a "carriage return line feed" after each
record. This option will be needed on most Ascii file transfers while rarely
needed with a Binary file transfer.
ΓòÉΓòÉΓòÉ 6.2.11. Save to Dial Directory ΓòÉΓòÉΓòÉ
When this option is selected the file transfer protocol that is selected will
be saved into the dialing directory for this number. The next time a file
transfer is used when connected to this number this same protocol will be
selected and all the user will have to do is press the OK button. If you do not
want this protocol save then de-select this option.
ΓòÉΓòÉΓòÉ 7. Hangup ΓòÉΓòÉΓòÉ
Hang-up sends the hang-up command string (see the Option menu) and optionally
drops the DTR line to the modem. Dropping DTR is the most effective if your
modem is setup to hang-up when DTR is dropped. Using a hang-up string is also
slower because Pmcomm has to get the modem into the command state before
sending the hang-up string. If you have DTR on and delete the hang-up string
the hang-up will be much faster. The default string is : +++~~~~ATH^M. The +++
is the default modem attention string, which puts the modem into the command
state. The ~~~~ will make Pmcomm pause 2 seconds (.5 seconds per ~) and then
the ATH will force the modem to go on-hook (hangup). The ^M sends a carriage
return line feed combination.
ΓòÉΓòÉΓòÉ 8. Options ΓòÉΓòÉΓòÉ
Option allows you to tailor Pmcomm to your own tastes. The areas in option are:
Port, Dial_Setup, Modem, Protocols, Paths, Macros_Setup, Screen, Terminal, and
Chat. The setup is not automatically saved. This allows you to change things
temporally without changing your default setup file. If you do want to make the
changes permanent be sure to save the setup file. To save the current setup
file, use the Save_setup command under the File menu option.
ΓòÉΓòÉΓòÉ 8.1. Port ΓòÉΓòÉΓòÉ
The device name should be a valid com device name. Some third party device
drivers allow you to use names other then COM1, COM2, etc., so Pmcomm does not
limit you to these names. Hardware flow control and DTR should be on for most
modems. There are currently a couple third party device drivers as well as OS/2
2.0, that support 38400 baud, so Pmcomm has been made to support this baud
rate.
ΓòÉΓòÉΓòÉ 8.1.1. Device Open Error Retries ΓòÉΓòÉΓòÉ
This is the number of attempts Pmcomm will try to open a device. After the
specified number of attempts Pmcomm will exit. If 0 is entered, Pmcomm will not
retry to open the device. This option is generally used to access a shared com
port (i.e. modem pool).
ΓòÉΓòÉΓòÉ 8.1.2. Seconds Between Retries ΓòÉΓòÉΓòÉ
This is the number of seconds Pmcomm will wait before retrying to open a
device.
ΓòÉΓòÉΓòÉ 8.1.3. Device Name ΓòÉΓòÉΓòÉ
The device name should be a valid com device name. Some third party device
drivers allow you to use, and in some cases require that you use, names other
then COM1, COM2, etc., so Pmcomm does not limit you to these names. If you are
using Pmcomm across a LAN then normally there will be an Alias name for the com
port you are using on the server. See your LAN administrator for the Alias
name(s) that you should use to access the modem(s).
ΓòÉΓòÉΓòÉ 8.1.4. Hardware Flow Control ΓòÉΓòÉΓòÉ
Hardware Flow Control is generally the most reliable method of flow control.
There are two basic times when flow control is needed. First, if Pmcomm is
sending information to the modem faster than the modem is able to send the
information flow control is needed. If flow control is not enabled then a
transmission error will occur. Second if the modem is sending information to
Pmcomm faster then Pmcomm can receive it, then Pmcomm will try to tell the
modem to stop sending the information. This can occur when an excessive amount
of processing is being preformed on the computer. Hardware Flow Control uses
two modem signals to control the flow of information. For send flow control the
CTS modem line is used. For receive flow control the RTS modem line is used. If
your modem supports these flow control signals, then setup your modem and
Pmcomm for Hardware Flow Control.
ΓòÉΓòÉΓòÉ 8.1.5. XON/XOFF Flow Control ΓòÉΓòÉΓòÉ
Xon/Xoff Flow Control should only be used when Hardware_Flow_Control is not
available and when flow control is necessary. The only two file transfers that
will work correctly with Xon/Xoff are ASCII and Zmodem. The only other protocol
that should need flow control is Ymodem-g.
ΓòÉΓòÉΓòÉ 8.1.6. Use DTR ΓòÉΓòÉΓòÉ
DTR stands for Data Terminal Ready, which by lowering DTR you can signal the
device you are communicating with (usually a modem) that you wish to go off
line. If you are connected to a modem you should set the modem up to go on-hook
when the modem detects a drop in DTR. The command for a Hayes 2400 baud modem
is AT&D2. If this option is selected in Pmcomm, then DTR will be dropped when
the hangup command is selected, or after each re-dial attempt.
ΓòÉΓòÉΓòÉ 8.1.7. Monitor DCD ΓòÉΓòÉΓòÉ
DCD stands for Data Carrier Detect and is pin 8 on an RS-232C cable. When a
carrier is detected by the modem, Pmcomm assumes that you are connected to a
remote computer. If DCD is not supported by your modem or other hardware, then
this option should be turned off. With this option turned on, if no DCD is
present then Pmcomm will not Hangup, or go into a file transfer. The drag and
drop from the file manager will also be disabled. The command for a Hayes 2400
baud modem is AT&C1. This will have the modem track the state of DCD.
ΓòÉΓòÉΓòÉ 8.1.8. Default Baud ΓòÉΓòÉΓòÉ
The default baud is the baud rate that the com port is set to when Pmcomm is
first executed. The baud rate is changed to the value in the dialing directory
when a number is dialed. Normally the default baud should be set to the highest
baud rate supported by your modem. If you have Pmcomm connected directly to
another computer with a NULL modem cable, then you want to set this baud to the
same baud rate that the other computer is using.
ΓòÉΓòÉΓòÉ 8.1.9. 8/N/1 ΓòÉΓòÉΓòÉ
This selection means 8 data bits, No parity, 1 stop bit. This option will be
overridden with the parameters listed in the dialing directory once you have
connected with a remote computer.
ΓòÉΓòÉΓòÉ 8.1.10. 7/E/1 ΓòÉΓòÉΓòÉ
This selection means 7 data bits, Even parity, 1 stop bit. This option will be
overridden with the parameters listed in the dialing directory once you have
connected with a remote computer.
ΓòÉΓòÉΓòÉ 8.2. Dial Setup ΓòÉΓòÉΓòÉ
This allows you to select a dialing_directory from a list box and also lets you
setup the prefix and suffix of the number to be dialed. There is a list box
that will allow you to select how the dialing directory will be sorted. You can
sort the dialing directory by name, number, baud rate, last on, number of times
called, download cps, upload cps, dial prefix, and dial suffix. You can also
select either ascending or descending order.
ΓòÉΓòÉΓòÉ 8.2.1. Dial Auto Selected Entries ΓòÉΓòÉΓòÉ
If the Dial Auto Selected Entries on program Startup is selected then any
entries in the dialing directory that are marked as automatically_selected ,
will automatically be dialed. This option will allow you to automatically dial
selected numbers when Pmcomm is first invoked. This can be very useful if you
dial the same numbers each time you run Pmcomm.
ΓòÉΓòÉΓòÉ 8.2.2. Sort Dialing Directory ΓòÉΓòÉΓòÉ
The dialing_directory can be sorted by either the name, phone number, baud
rate, last time called, number of times called, download characters per second,
upload characters per second, dial prefix, or dial suffix. The directory can be
sorted in either ascending or descending order. For example you can sort the
dialing directory by last time called in descending order, and all the most
recently called numbers will be displayed at the top of the dialing directory.
ΓòÉΓòÉΓòÉ 8.2.3. Dialing Directory List ΓòÉΓòÉΓòÉ
A list of the available dialing_directories are displayed in a list box, so
that a default directory can be selected. The selected directory will
automatically be loaded when Pmcomm is started. You can add additional
directories by pressing the add button.
ΓòÉΓòÉΓòÉ 8.3. Modem ΓòÉΓòÉΓòÉ
The initialization string should have the commands in it to enable word result
codes, hang-up when DTR is dropped and enable hardware flow control. Not all of
these are supported by all modems but use them when possible. Pause before
redial is the time Pmcomm waits before trying to re-dial a number. Seconds to
wait for carrier is how long Pmcomm will wait for a connection before
re-dialing.
ΓòÉΓòÉΓòÉ 8.3.1. Modem Initialization String ΓòÉΓòÉΓòÉ
Initialization string should have the commands in it to enable word result
codes, hang-up when DTR is dropped and enable hardware flow control. Not all of
these are supported by all modems, but use them when possible. Pmcomm's default
modem string is for a Hayes 2400 baud modem. This is the default string:
AT&F&D2&C1M0Q0S2=255S10=30X4
For a Courier HST the following string should be entered.
AT&FM0&B1&H1&K0&R2&S1&Y0S2=43S10=30X4
This allows everything to be transferred to the modem at 19200 no matter what
the connect baud is. This setting will give you the max through-put even at
lower baud rates. To write this into memory of the HST run Pmcomm and then
enter AT&F&W. This will set the NRAM to the factory defaults. Then type in the
setup string and press enter. To save this to the NRAM enter AT&W. Then all
you have to have for a initialization string in Pmcomm is an ATZ, which will
restore these settings from the NRAM. On the HST I have the DIP switches set
as follows:
up: 1,2,4,6,7,9,10
down: 3,5,8
For a Hayes 9600 V.42 modem the following string should be entered.
AT&F&K3W1&C1&D2S36=7S0=0S2=255S7=30M0S10=30X4N1
ΓòÉΓòÉΓòÉ 8.3.2. Modem Pause Before Redial ΓòÉΓòÉΓòÉ
Pmcomm will pause for the specified number of seconds before attempting to
re-dial a phone number. Some phone systems take a few seconds before you can
re-dial a phone number. The default value is 3 seconds and should work for most
phone systems.
ΓòÉΓòÉΓòÉ 8.3.3. Modem Dial Timeout ΓòÉΓòÉΓòÉ
Pmcomm will wait for a Connect or Carrier message from the modem for up to 64
seconds. The S7 register of the modem must also be set to a value at least as
great as the dial timeout value. This can be done by issuing the following
command to the modem: ATS7=30. This would set the modem to timeout after 30
seconds. Setting the dial timeout to a value greater then 30 would not be
effective because the modem would still timeout after 30 seconds. The default
timeout value for Pmcomm is 60 seconds.
ΓòÉΓòÉΓòÉ 8.4. Protocols ΓòÉΓòÉΓòÉ
The options under protocols are:
Auto Zmodem Download.
Zmodem file recovery.
Zmodem CRC-32.
Zmodem CRC-16.
Auto CISB Transfer.
CISB file recovery.
Import File line delay.
Force 8 bit transfer.
End of line character.
Control quote character.
Number of pad characters.
Pad character.
IND$FILE.
Auto Zmodem makes Pmcomm check for a Zmodem start sequence. When received,
Pmcomm automatically starts receiving the file. Zmodem file recovery allows
Zmodem to resume a file transfer that was previously aborted. CRC-32 has
improved error correction but is slightly slower. If CRC-32 is not available
Pmcomm will switch to CRC-16. Zmodem is only available on commercial versions.
Auto CISB is similar to Auto Zmodem except that both uploads and downloads can
be started this way. This feature is for the CISB file transfer protocol. CISB
file recovery allows CISB to resume a file transfer that was previously
aborted. The IND$FILE protocol may also be selected for downloads.
CAUTION:
The IND$FILE file transfer protocol in Pmcomm, currently, does not support any
error detection.
The rest are Kermit options and should be made to match your host.
ΓòÉΓòÉΓòÉ 8.5. Paths ΓòÉΓòÉΓòÉ
The download path allows you to have the files that you download put into a
different directory. The script path is where Pmcomm looks for the scripts
listed in the dialing directory. If a script called startup.scr exists in this
directory then it will be executed each time Pmcomm is started. The capture
path is where all screen captures are stored. These paths must contain a valid
directory. It defaults to the directory that Pmcomm was started from. There is
also a call logging option here which when turned on will start call logging as
soon as Pmcomm is run.
ΓòÉΓòÉΓòÉ 8.6. Macros Setup ΓòÉΓòÉΓòÉ
There are 10 user definable keyboard macros. These can be invoked by holding
down the Alt key and pressing 0-9. Use ^M to send a carriage return. When the
macro is invoked it will send the string that you have defined to the modem.
Once you have setup the macro string, it can also be selected from the main
menu using a mouse. Other special characters are: ^H = tab character.
^J = carriage return without a line feed.
^L = form feed.
^[ = escape character (Ascii 27)
^C = send the Ctrl-C character (Ascii 3)
^K = XON character
^S = XOFF character
~ = sleep for half a second
You can also send any other special character by holding down the Alt key and
typing in the Ascii number on the numeric key pad. For example, if you want to
enter the escape character into a macro you could hold down the Alt key and
then press the two and the seven on the numeric key pad (while still holding
down the Alt key). When you then release the Alt key the escape character
would be inserted into the macro. Scripts can be executed from macros by using
the shell command. An example of this would be:
shell("c:\pmcomm\plane.cmd");
This would execute the REXX script called plane.cmd. This allows you a quick
and easy way to execute often used scripts.
ΓòÉΓòÉΓòÉ 8.7. Screen ΓòÉΓòÉΓòÉ
This command allows you to tailor the screen handling to your tastes. The best
thing to do is try them to see if you like them. Some features like the
automatic horizontal scroll will probably only be used when typing messages and
chatting.
ΓòÉΓòÉΓòÉ 8.7.1. Font ΓòÉΓòÉΓòÉ
Allows you to select from a list of font sizes. The sizes depend on the display
adapter and version of OS/2 your are using. Pmcomm queries the video device
driver to see what font sizes it supports and lists them for you to select.
ΓòÉΓòÉΓòÉ 8.7.2. Foreground ΓòÉΓòÉΓòÉ
Sets up the color to be used for the text used in the Pmcomm window. There are
16 different background and foreground colors available, allowing for 256
different color combinations.
ΓòÉΓòÉΓòÉ 8.7.3. Background ΓòÉΓòÉΓòÉ
Sets up the color to be used for the Pmcomm window background. There are 16
different background and foreground colors available, allowing for 256
different color combinations.
ΓòÉΓòÉΓòÉ 8.7.4. Hide Window While Dialing ΓòÉΓòÉΓòÉ
The hide window while dialing option will make the screen less "busy" while
dialing.
ΓòÉΓòÉΓòÉ 8.7.5. Hide Window During a File Transfer ΓòÉΓòÉΓòÉ
The hide window during a file transfer option will make the screen less "busy"
while executing a file transfer.
ΓòÉΓòÉΓòÉ 8.7.6. Automatic Vertical Scroll ΓòÉΓòÉΓòÉ
The Automatic vertical scroll option will make Pmcomm keep the cursor
vertically in the Pmcomm window.
ΓòÉΓòÉΓòÉ 8.7.7. Automatic Horizontal Scroll ΓòÉΓòÉΓòÉ
The Automatic horizontal scroll option will keep the cursor horizontally in the
Pmcomm window.
ΓòÉΓòÉΓòÉ 8.7.8. Retain Dialing Dialog's Position ΓòÉΓòÉΓòÉ
The retain dialing dialog's position option will make Pmcomm restore the last
position of the dialing dialog each time it is invoked. If this option is not
selected then OS/2 will decide where to place the dialog boxes.
ΓòÉΓòÉΓòÉ 8.7.9. Retain Transfer Dialog's Position ΓòÉΓòÉΓòÉ
The retain transfer dialog's position option will make Pmcomm restore the last
position of the transfer dialog each time it is invoked. If this option is not
selected then OS/2 will decide where to place the dialog boxes.
ΓòÉΓòÉΓòÉ 8.7.10. Show Dial Message Box ΓòÉΓòÉΓòÉ
The Show Dial Message Box option makes Pmcomm display a message box and beeps
at the user, when Pmcomm obtains a remote connection, until the OK button is
pressed. This will make sure you notice that Pmcomm has a remote connection.
ΓòÉΓòÉΓòÉ 8.7.11. Local Echo On ΓòÉΓòÉΓòÉ
The local echo on option will make Pmcomm echo all keystrokes to the local
screen as well as to the remote computer.
ΓòÉΓòÉΓòÉ 8.7.12. Turn Sound On ΓòÉΓòÉΓòÉ
The turn sound on option will make Pmcomm alert the user when certain functions
have been completed. The sound must also be turned on in OS/2 for this option
to work. This can be done through the control panel.
ΓòÉΓòÉΓòÉ 8.8. Status Line ΓòÉΓòÉΓòÉ
This option will activate Pmcomm's Status Line. The Status Line allows you, at
a glance, to view which options are currently running.
Phone Icon
There are many options that can be accessed by the Phone Icon. If the telephone
is on-hook (hung up) and you click on the icon, Pmcomm will dial any numbers
that you have selected in the dialing directory. If there aren't any numbers
selected, Pmcomm will "pop" up the dialing directory.
If you select a dialing directory in File Manager and hold down the right mouse
button you can drag the dialing directory to the phone icon. Once the button is
released over the phone icon, Pmcomm will dial any selected numbers. If there
aren't any numbers selected, Pmcomm will "pop" up the dialing directory.
Once online the phone icon will be taken off-hook. If the phone is off-hook and
you click on the icon Pmcomm will hang-up. If Monitor DCD is turned off and you
click on the icon, Pmcomm will dial any selected numbers in the dialing
directory. If there aren't any numbers selected, Pmcomm will "pop" up the
dialing directory.
If Monitor DCD is turned off the telephone will appear with a question mark
imposed over the top of it.
Disk Drive Icon
The Disk Drive Icon allows a quick and easy way to turn the Capture option on
and off. If the disk drive icon light is green and you click on the icon Pmcomm
will will then prompt you for the filename of the capture file. If the disk
drive icon light is red Pmcomm is already executing the Capture command. If you
click on the icon while the disk drive icon light is red, Pmcomm will cancel
the Capture command.
Log Icon
By clicking on the log icon, Pmcomm will turn logging on. When logging is on,
the log will appear with logging equipment (cross-cut saw and an axe), if you
click on this icon Pmcomm will turning logging off.
Printer Icon
By clicking on the Printer Icon you can print any selected text. If there isn't
any selected text, Pmcomm will execute the Print Continuous command. Clicking
on the icon again will turn the Print Continuous command off.
Generator Icon
Clicking on the Generator Icon will turn on the Script Generator. Pmcomm will
then prompt you for a filename for the script. If you click on the icon again,
Pmcomm will turn off the Script Generator. The Generator Icon will have
lightning bolts about it when a script is being generated.
Book Icon
Clicking on the the Book Icon will execute a script. If Pmcomm is executing a
script, clicking on the icon will cancel the script. You can also use the drag
and drop feature of Pmcomm to select any executable file (extensions .exe, .cmd
and .scr) from the File Manager and executing that file by dragging and
dropping the file on the Book Icon.
Com Port Statistics
This line in the Status Line shows which com port you are using, the baud rate,
data bits, parity, and stop bits that Pmcomm is currently using. Clicking on
this line with a mouse will "pop" up the port setup dialog box.
Elapsed Timer
The Status Line also has an elapsed timer that starts as soon as you are
connected to another computer. The timer displays the elapsed time in hours and
minutes. You may also set two warning levels. The first will change the connect
time to yellow and the second level will turn the connect time red. These
warning levels are useful to keep track of how of the time you are connected to
a remote computer. The elapsed timer will only be displayed if Monitor DCD is
turned on. If Monitor DCD is turned off the time of day will be displayed.
Clicking on this line will toggle between the time of day and the connect time.
The of day will be displayed as default.
ΓòÉΓòÉΓòÉ 8.8.1. Show Status Line ΓòÉΓòÉΓòÉ
The "Show status line" option will display Pmcomm's Status Line at the bottom
of the Pmcomm window. For more information see Status_Line.
ΓòÉΓòÉΓòÉ 8.8.2. Connect time for first warning ΓòÉΓòÉΓòÉ
After the amount of time specified in this option expires, Pmcomm will turn the
connect time yellow. The time must be specified in the hh:mm format.
ΓòÉΓòÉΓòÉ 8.8.3. Connect time for second warning ΓòÉΓòÉΓòÉ
After the amount of time specified in this option expires, Pmcomm will turn the
connect time red. The time must be specified in the hh:mm format.
ΓòÉΓòÉΓòÉ 8.9. Terminal ΓòÉΓòÉΓòÉ
Terminal allows you to select which emulation you wish to use. There are also
some options for the different emulations.
ΓòÉΓòÉΓòÉ 8.9.1. TTY emulation ΓòÉΓòÉΓòÉ
The TTY emulation makes Pmcomm act as a teletype device. Generally this is the
least used emulation, however, it is also the fastest. The reason for this is
that there are very few special commands that Pmcomm has to process. None of
the special ANSI control codes are processed.
ΓòÉΓòÉΓòÉ 8.9.2. ANSI emulation ΓòÉΓòÉΓòÉ
The ANSI emulation is probably the most used. It will execute the special ANSI
screen control commands. This allows the remote program to be able to clear the
screen, position the cursor and change the colors. There are other screen
control commands but these are the most commonly used ones. There are also
options to have Pmcomm ignore the ANSI color changes so that you can use the
colors you want, instead of the ones the remote computer uses, and to send the
ANSI cursor position commands with the arrow keys. When using the ANSI
emulation you can also have Pmcomm strip off the ANSI commands before saving
the information into a capture file. This will make the capture file much more
readable. You can also change the length of the page, to correspond to the size
of your screen. The default for the ANSI page length is 25 lines, and under
most cases should be left there.
ΓòÉΓòÉΓòÉ 8.9.3. VT100 emulation ΓòÉΓòÉΓòÉ
In VT100 emulation, some keys have been changed to try to more closely emulate
the VT100 keyboard. F1-F4 are now the PF keys. Because of this the F1 key will
not display the normal help and F3 will not exit the program. The PF keys will
send the following characters:
F1 = ESCOP
F2 = ESCOQ
F3 = ESCOR
F4 = ESCOS
Where ESC is equal to the ASCII character hex 1B. All other hot keys will not
be available. When the num lock key is off, the numerical key pad will be in
the application mode. If you are connecting to a VT220 Host you can use these
keys to send the VT220 PF key values. For example pressing the 1 on the
numeric key pad will send the VT220 PF1 key. Pressing the 3 on the numeric key
pad will send the VT220 PF3 key, and so on. With the num lock on the numbers
will be sent. The plus key has been re-mapped to be a comma, again to be
compatible with the VT100 keyboard. In most cases it is best to tell the host
that you are a VT220 terminal. The VT100 emulation of Pmcomm supports most of
the VT220 commands, and will allow you to use the extra support that VT220
allows. If you tell the host that you are a VT220 terminal, for example, you
will be able to use the Ctrl-R for reset and the Ctrl-C for clear. These are
just a couple of examples of the additional benefit that you can get from
VT220.
The send DEL for backspace option is the default for many VT100 keyboards.
When this is selected, Pmcomm will send a hex 7f character instead of the
backspace character. You can still send a backspace character by pressing
Ctrl-Backspace. This allows you to have both these characters available at one
time.
The translate CR/LF for LF option will act as if it received a carriage return
and a line feed, each time it receives a line feed.
The line wrap option will make Pmcomm wrap the line if the line is longer than
the page width. If this option is off the line will be truncated.
The Insert mode option will allow you to insert characters into the middle of
a line and the rest of the line will be shifted to the right to allow room for
the new characters.
The cursor visible option determines if the cursor will be shown on the screen
or not.
The Screen origin relative option determines if Pmcomm will keep everything on
a 25 line screen or allow it to use the scroll back buffer. In most cases this
option should be selected.
The last two options are to set the width of the screen. Either 80 or 132
columns are supported.
Most of these options can be changed from the host. The default setup should
work for most applications, and the host can change the options to meet
different needs.
ΓòÉΓòÉΓòÉ 8.10. Chat ΓòÉΓòÉΓòÉ
This sets up Pmcomm to "chat" when connected to another computer that is also
running Pmcomm. This mode automatically sets Pmcomm to echo characters locally
and to send a carriage return line feed combination when the enter key is
pressed.
ΓòÉΓòÉΓòÉ 9. Macros ΓòÉΓòÉΓòÉ
Allows you to pick, with a mouse, the macro you wish to send. Can also be
selected with an Alt+corresponding number keystroke. Pmcomm allows you to set
up ten different macros. Scripts can be executed from macros by using the shell
command. An example of this would be:
shell("c:\pmcomm\plane.cmd");
This would execute the REXX script called plane.cmd. This allows you a quick
and easy way to execute your most popular scripts.
ΓòÉΓòÉΓòÉ 10. Script Syntax ΓòÉΓòÉΓòÉ
Both, internal and REXX, syntaxes are described in this section.
ΓòÉΓòÉΓòÉ 10.1. REXX Functions ΓòÉΓòÉΓòÉ
This describes the function calls that are available in the rxpmcomm.dll.
Before using any of these calls you must include these lines in your REXX
program:
Call RxFuncadd " init_dll ","RxPmcomm","init_dll"
Parse arg port portname screen_handle dde_output dde_input semaphore
Call init_dll
The rxpmcomm.dll must reside in a directory listed in your LIBPATH statement
in config.sys. One of the default directories is \os2\dll. These functions are
designed to make it easier to preform tasks necessary when writing scripts for
asynch communications. To invoke a REXX program from a script, use the shell(
) function in the script. The format of the shell function is as follows:
shell("\path\filename.cmd");
where filename.cmd is your REXX program. These functions have been tested with
the REXX that comes with OS/2 1.2 EE, but should work with any totally
function compatible REXX. There are some sample REXX programs included.
ΓòÉΓòÉΓòÉ 10.1.1. init_dll ΓòÉΓòÉΓòÉ
The init_dll function will register the functions in the rxpmcomm.dll, with
REXX. This function must be called before any other rxpmcomm.dll function is
called. The RxFuncadd must be called before init_dll to register this function
with REXX.
ΓòÉΓòÉΓòÉ 10.1.2. os2_shell ΓòÉΓòÉΓòÉ
os2_shell port,port
Example
Call os2_shell port,port
Description
This command will allow a caller to shell to OS/2, remotely. The first
parameter is the input handle and the second is the output handle. In the
example above, the command will receive and send the information to the com
port.
Returns
1 if successful and 0 if unsuccessful.
ΓòÉΓòÉΓòÉ 10.1.3. set_download_path ΓòÉΓòÉΓòÉ
set_download_path directory,dde_output
Example
Call set_download_path "c:\pmcomm",dde_output
Description
The above example will set the download path to c:\pmcomm. This will store all
of the files received in that directory. The dde_output, is the dde_output
value passed on the command line.
Returns
1 if successful and 0 if unsuccessful.
ΓòÉΓòÉΓòÉ 10.1.4. setcom ΓòÉΓòÉΓòÉ
setcom baud,parity,data_bit,stop_bits,port
Example
Call setcom "2400","N","8","1",port
Description
This would set the com port to 2400 baud, no parity, 8 data bits, 1 stop bit.
Baud can be from 300 to 19200 with the standard OS/2 device driver. Parity can
be N(none), O(odd), E(even), M(marked), or S(spaced). Data bits can be 5, 6, 7
or 8. Stop bits can be 1 or 2 (2 can only be used with 5 data bits). If a
parameter is an empty string (i.e. setcom "","E","7","1",port) this leaves the
baud at the current rate but set the line characteristics to 7, Even, 1.
Returns
1 if successful and 0 if unsuccessful.
ΓòÉΓòÉΓòÉ 10.1.5. sendb ΓòÉΓòÉΓòÉ
sendb length,port
Example
Call sendb "300",port
Description
This call sends a break signal a certain time in milliseconds. The above
example would send a break signal for 300 milliseconds. This call is mostly
used to establish direct connects (not using a modem). Three hundred
milliseconds should be okay for most situations.
Returns
1 if successful and 0 if unsuccessful.
ΓòÉΓòÉΓòÉ 10.1.6. dcd ΓòÉΓòÉΓòÉ
dcd port
Example
Call dcd port
Description
This call checks to see if there is a carrier detected on the modem. You can
use this to see if Pmcomm is still online to a remote computer. For this
information to be correct the modem must support dcd and the modem must be
configured to support dcd. To find the command refer to your owner's manual.
Returns
1 if carrier detected and 0 if no carrier.
ΓòÉΓòÉΓòÉ 10.1.7. char_avail ΓòÉΓòÉΓòÉ
char_avail port
Example
Call char_avail port
Description
This call checks to see how many characters are available in the device
driver's receive buffer. You can use this function to check to see if the
device driver has received any characters from the com port.
Returns
Number of characters in device driver receive queue.
ΓòÉΓòÉΓòÉ 10.1.8. read_timeout ΓòÉΓòÉΓòÉ
read_timeout timeout,port
Example
Call read_timeout 20000,port
Description
This call sets the length of time (in milliseconds) that wait_for, wait_fore,
Get_ch will wait for a character from the com port. The above example will
make the functions wait for 20 seconds.
Returns
1 if successful and 0 if unsuccessful.
ΓòÉΓòÉΓòÉ 10.1.9. Get_ch ΓòÉΓòÉΓòÉ
Get_ch port
Example
Call Get_ch port
Description
This call will get a character from the com port. If no character is available
by the time set with read_timeout the function will return with a value of -1.
Otherwise the function will return with the character read.
Returns
char value if successful and -1 if unsuccessful.
ΓòÉΓòÉΓòÉ 10.1.10. ring_detect ΓòÉΓòÉΓòÉ
ring_detect port
Example
Call ring_detect port
Description
This call can be used to inform a program if the phone is ringing.
Returns
1 if ring detected, 0 if no ring, and 2 if invalid number of parameters.
ΓòÉΓòÉΓòÉ 10.1.11. drop_dtr ΓòÉΓòÉΓòÉ
drop_dtr port
Example
Call drop_dtr port
Description
This call is usually used to make a modem hang up. The modem must be
configured to allow this. To find the command for your modem, check your
owner's manual. Dtr needs to be dropped for about 2-3 seconds to make sure the
modem sees the drop in DTR. After that length of time raise_dtr can be called
to bring DTR back up. On a Hayes 2400 the above command will also keep the
modem from doing an auto answer until you raise_dtr again.
Returns
1 if successful and 0 if unsuccessful.
ΓòÉΓòÉΓòÉ 10.1.12. raise_dtr ΓòÉΓòÉΓòÉ
raise_dtr port
Example
Call raise_dtr port
Description This call is usually used after drop_dtr to allow the modem to
process commands and enable it to answer the phone.
Returns
1 if successful and 0 if unsuccessful.
ΓòÉΓòÉΓòÉ 10.1.13. Wait_for (REXX) ΓòÉΓòÉΓòÉ
Wait_for string,string,string...,port
Example
Call Wait_for "first name?","last name?",port
Description
The above example would wait for either first name?, or last name?, from the
com port. The function will return the index of the string that matched. For
example if the Wait_for received last name?, then the result would be 2. You
can specify any number of strings depending on memory available.
Returns
Index of matched string or zero if timeout or error.
ΓòÉΓòÉΓòÉ 10.1.14. Wait_fore ΓòÉΓòÉΓòÉ
Wait_fore string,string,string...,port,screen_handle
Example
Call Wait_fore "first name?","last name?",port,screen_handle
Call Wait_fore "first name?",port,1
Call Wait_fore "first name?","raw",port,1
Description
The first example would wait for either first name?, or last name?, from the
com port and echo the out_put to the Pmcomm screen. The second example would
do the same except it would write the out put to StdOut(value 1) which would
be the REXX screen. The third example would look for an exact match coming
accross the com port, including any ANSI sequences.
Returns
Index of matched string or zero if timeout or error.
ΓòÉΓòÉΓòÉ 10.1.15. Put_s ΓòÉΓòÉΓòÉ
Put_s string,port
Example
Call Put_s "first name",port
Description
This call will send string out to port. In the above example first name will
be sent to the com port. If port is not specified then 'string' will be sent
to the REXX screen. If screen_handle is specified instead of port then the
string will be sent to the Pmcomm screen.
Returns
Length of string actually written.
ΓòÉΓòÉΓòÉ 10.1.16. Sleep (REXX) ΓòÉΓòÉΓòÉ
Sleep time
Example
Call Sleep "1000"
Description
This call will delay the program for the amount of milliseconds specified. The
above example will delay the computer for one second.
Returns
Unconditionally 0.
ΓòÉΓòÉΓòÉ 10.1.17. beep ΓòÉΓòÉΓòÉ
beep frequency,duration
Example
Call beep 495,100
Description
The above example will beep the speaker.
Returns
1 if successful and 0 if unsuccessful.
ΓòÉΓòÉΓòÉ 10.1.18. get_cursor_position ΓòÉΓòÉΓòÉ
get_cursor_position axis,dde_output,dde_input
Example
Call get_cursor_position "column",dde_output,dde_input
Description
The above will return the column that the cursor is in. To get the current
row, you would issue this call with "row" instead of "column". The row value
that is returned is relative to the top of the scroll back buffer. The top row
of the scroll back buffer and the first column would be 0,0.
Returns
Cursor position.
ΓòÉΓòÉΓòÉ 10.1.19. get_char_at ΓòÉΓòÉΓòÉ
get_char_at row,column,number,dde_output,dde_input
Example
Call get_char_at 0,0,80,dde_output,dde_input
Description
The above will return the characters at the first line of the scroll back
buffer. It will return 80 characters, even if the characters are spaces. The
maximum number of characters that can be returned at one time is 200.
Returns
Character(s) at the specified row and column.
ΓòÉΓòÉΓòÉ 10.1.20. REXX capture_on ΓòÉΓòÉΓòÉ
capture_on filename,dde_output,dde_input
Example
Call capture_on "c:\pmcomm\cap.txt", dde_output, dde_input
Description
The above will turn capture on so that everything will be saved into a file.
If you have strip ANSI configured in Pmcomm then the text only will be saved
in ANSI, and VT100 terminal emulation. If the file already exists it will be
overwritten.
Returns
1 if successful and 0 if not.
ΓòÉΓòÉΓòÉ 10.1.21. REXX capture_off ΓòÉΓòÉΓòÉ
capture_off dde_output,dde_input
Example
Call capture_off dde_output,dde_input
Description
The above will turn capture off. The capture may have been started from a
script or from the menu.
Returns
1 if successful and 0 if not.
ΓòÉΓòÉΓòÉ 10.1.22. xmodem_send ΓòÉΓòÉΓòÉ
xmodem_send filename,dde_output,dde_input
Example
Call xmodem_send "filename.ext",dde_output,dde_input
Description
This call will invoke the Xmodem_CRC send routine, built into Pmcomm. Once
issued the call will not return until the transfer either finishes or is
aborted. Pmcomm will show the normal transfer dialog that it does when
uploading from the menu.
Returns
1 if call is successful and 0 if unsuccessful.
ΓòÉΓòÉΓòÉ 10.1.23. xmodem_receive ΓòÉΓòÉΓòÉ
xmodem_receive filename,dde_output,dde_input
Example
Call xmodem_receive "filename.ext",dde_output,dde_input
Description
This call will invoke the Xmodem_CRC receive routine, built into Pmcomm. Once
issued the call will not return until the transfer either finishes or is
aborted. Pmcomm will show the normal transfer dialog that it does when
downloading from the menu. The file will be downloaded into the download
directory. The file name specified must not include a path.
Returns
1 if call is successful and 0 if unsuccessful.
ΓòÉΓòÉΓòÉ 10.1.24. xmodem_chk_send ΓòÉΓòÉΓòÉ
xmodem_chk_send filename,dde_output,dde_input
Example
Call xmodem_chk_send "filename.ext",dde_output,dde_input
Description
This call will invoke the Xmodem_Checksum send routine, built into Pmcomm.
Once issued the call will not return until the transfer either finishes or is
aborted. Pmcomm will show the normal transfer dialog that it does when
uploading from the menu.
Returns
1 if call is successful and 0 if unsuccessful.
ΓòÉΓòÉΓòÉ 10.1.25. xmodem_chk_receive ΓòÉΓòÉΓòÉ
xmodem_chk_receive filename,dde_output,dde_input
Example
Call xmodem_receive "filename.ext",dde_output,dde_input
Description
This call will invoke the Xmodem_Checksum receive routine, built into Pmcomm.
Once issued the call will not return until the transfer either finishes or is
aborted. Pmcomm will show the normal transfer dialog that it does when
downloading from the menu. The file will be downloaded into the download
directory. The file name specified must not include a path.
Returns
1 if call is successful and 0 if unsuccessful.
ΓòÉΓòÉΓòÉ 10.1.26. xmodem_1k_send ΓòÉΓòÉΓòÉ
xmodem_1k_send filename,dde_output,dde_input
Example
Call xmodem_1k_send "filename.ext",dde_output,dde_input
Description
This call will invoke the 1K-Xmodem send routine, built into Pmcomm. Once
issued the call will not return until the transfer either finishes or is
aborted. Pmcomm will show the normal transfer dialog that it does when
uploading from the menu.
Returns
1 if call is successful and 0 if unsuccessful.
ΓòÉΓòÉΓòÉ 10.1.27. xmodem_1k_receive ΓòÉΓòÉΓòÉ
xmodem_1k_receive filename,dde_output,dde_input
Example
Call xmodem_1k_receive "filename.ext",dde_output,dde_input
Description
This call will invoke the 1K-Xmodem receive routine, built into Pmcomm. Once
issued the call will not return until the transfer either finishes or is
aborted. Pmcomm will show the normal transfer dialog that it does when
downloading from the menu. The file will be downloaded into the download
directory. The file name specified must not include a path.
Returns
1 if call is successful and 0 if unsuccessful.
ΓòÉΓòÉΓòÉ 10.1.28. ymodem_send ΓòÉΓòÉΓòÉ
ymodem_send filename,dde_output,dde_input
Example
Call ymodem_send "filename.ext",dde_output,dde_input
Description
This call will invoke the Ymodem send routine, built into Pmcomm. Once issued
the call will not return until the transfer either finishes or is aborted.
Pmcomm will show the normal transfer dialog that it does when uploading from
the menu. You may send multiple files by specifying more than file name.
Returns
Number of files transferred.
ΓòÉΓòÉΓòÉ 10.1.29. ymodem_receive ΓòÉΓòÉΓòÉ
ymodem_receive dde_output,dde_input
Example
Call ymodem_receive dde_output,dde_input
Description
This call will invoke the Ymodem receive routine, built into Pmcomm. Once
issued the call will not return until the transfer either finishes or is
aborted. Pmcomm will show the normal transfer dialog that it does when
downloading from the menu. The file will be downloaded into the download
directory. This one call will receive multiple files. The filenames used are
the ones sent from the remote computer.
Returns
Number of files transferred.
ΓòÉΓòÉΓòÉ 10.1.30. ymodemg_send ΓòÉΓòÉΓòÉ
ymodemg_send filename,dde_output,dde_input
Example
Call ymodemg_send "filename.ext",dde_output,dde_input
Description
This call will invoke the Ymodem-g send routine, built into Pmcomm. Once
issued the call will not return until the transfer either finishes or is
aborted. Pmcomm will show the normal transfer dialog that it does when
uploading from the menu. You may send multiple files by specifying more than
file name.
Returns
Number of files transferred.
ΓòÉΓòÉΓòÉ 10.1.31. ymodemg_receive ΓòÉΓòÉΓòÉ
ymodemg_receive dde_output,dde_input
Example
Call ymodemg_receive dde_output,dde_input
Description
This call will invoke the Ymodem-g receive routine, built into Pmcomm. Once
issued the call will not return until the transfer either finishes or is
aborted. Pmcomm will show the normal transfer dialog that it does when
downloading from the menu. The file will be downloaded into the download
directory. This one call will receive multiple files. The filenames used are
the ones sent from the remote computer.
Returns
Number of files transferred.
ΓòÉΓòÉΓòÉ 10.1.32. zmodem_send ΓòÉΓòÉΓòÉ
zmodem_send filename,dde_output,dde_input
Example
Call zmodem_send "filename.ext",dde_output,dde_input
Description
This call will invoke the Zmodem send routine, built into Pmcomm. Once issued
the call will not return until the transfer either finishes or is aborted.
Pmcomm will show the normal transfer dialog that it does when uploading from
the menu. You may send multiple files by specifying more than file name.
Returns
Number of files transferred.
ΓòÉΓòÉΓòÉ 10.1.33. zmodem_receive ΓòÉΓòÉΓòÉ
zmodem_receive dde_output,dde_input
Example
Call zmodem_receive dde_output,dde_input
Description
This call will invoke the Zmodem receive routine, built into Pmcomm. Once
issued the call will not return until the transfer either finishes or is
aborted. Pmcomm will show the normal transfer dialog that it does when
downloading from the menu. The file will be downloaded into the download
directory. This one call will receive multiple files. The filenames used are
the ones sent from the remote computer.
Returns
Number of files transferred.
ΓòÉΓòÉΓòÉ 10.1.34. kermit_send ΓòÉΓòÉΓòÉ
kermit_send filename,dde_output,dde_input
Example
Call kermit_send "filename.ext",dde_output,dde_input
Description
This call will invoke the Kermit send routine, built into Pmcomm. Once issued
the call will not return until the transfer either finishes or is aborted.
Pmcomm will show the normal transfer dialog that it does when uploading from
the menu. You may send multiple files by specifying more than file name.
Returns
Number of files transferred.
ΓòÉΓòÉΓòÉ 10.1.35. kermit_receive ΓòÉΓòÉΓòÉ
kermit_receive dde_output,dde_input
Example
Call kermit_receive dde_output,dde_input
Description
This call will invoke the Kermit receive routine, built into Pmcomm. Once
issued the call will not return until the transfer either finishes or is
aborted. Pmcomm will show the normal transfer dialog that it does when
downloading from the menu. The file will be downloaded into the download
directory. This one call will receive multiple files. The filenames used are
the ones sent from the remote computer.
Returns
Number of files transferred.
ΓòÉΓòÉΓòÉ 10.1.36. ascii_send ΓòÉΓòÉΓòÉ
ascii_send filename,dde_output,dde_input
Example
Call ascii_send "filename.ext",dde_output,dde_input
Description
This call will invoke the ASCII send routine, built into Pmcomm. Once issued
the call will not return until the transfer either finishes or is aborted.
Pmcomm will show the normal transfer dialog that it does when uploading from
the menu.
Returns
1 if call is successful and 0 if unsuccessful.
ΓòÉΓòÉΓòÉ 10.1.37. ascii_receive ΓòÉΓòÉΓòÉ
ascii_receive filename,dde_output,dde_input
Example
Call ascii_receive "filename.ext",dde_output,dde_input
Description
This call will invoke the ASCII receive routine, built into Pmcomm. Once
issued the call will not return until the transfer either finishes or is
aborted. Pmcomm will show the normal transfer dialog that it does when
downloading from the menu. The file will be downloaded into the download
directory. The file name specified must not include a path.
Returns
1 if call is successful and 0 if unsuccessful.
ΓòÉΓòÉΓòÉ 10.1.38. cisb_send ΓòÉΓòÉΓòÉ
cisb_send filename,dde_output,dde_input
Example
Call cisb_send "filename.ext",dde_output,dde_input
Description
This call will invoke the CISB send routine, built into Pmcomm. Once issued
the call will not return until the transfer either finishes or is aborted.
Pmcomm will show the normal transfer dialog that it does when uploading from
the menu.
Returns
1 if call is successful and 0 if unsuccessful.
ΓòÉΓòÉΓòÉ 10.1.39. cisb_receive ΓòÉΓòÉΓòÉ
cisb_receive filename,dde_output,dde_input
Example
Call cisb_receive "filename.ext",dde_output,dde_input
Description
This call will invoke the CISB receive routine, built into Pmcomm. Once issued
the call will not return until the transfer either finishes or is aborted.
Pmcomm will show the normal transfer dialog that it does when downloading from
the menu. The file will be downloaded into the download directory. The file
name specified must not include a path.
Returns
1 if call is successful and 0 if unsuccessful.
ΓòÉΓòÉΓòÉ 10.2. Internal Functions ΓòÉΓòÉΓòÉ
These are script functions that are built into Pmcomm.
ΓòÉΓòÉΓòÉ 10.2.1. wait_for (internal) ΓòÉΓòÉΓòÉ
wait_for("string");
This will wait until the word 'string' is received. One use of this is when
logging onto a BBS you can have it wait until prompted for a first name.
ΓòÉΓòÉΓòÉ 10.2.2. puts ΓòÉΓòÉΓòÉ
puts("string");
This will send string to the comport. The 'C' language special character
'\r','\n','\b',and '\a' can also be used.
The \r means carriage return.
The \n means carriage return and line feed combination.
The \b means backspace.
The \a means alert (Pmcomm will beep).
ΓòÉΓòÉΓòÉ 10.2.3. sleep (internal) ΓòÉΓòÉΓòÉ
sleep(1000);
This will wait for the number of milliseconds specified. In this example it
would sleep for one second.
ΓòÉΓòÉΓòÉ 10.2.4. call ΓòÉΓòÉΓòÉ
call("filename");
This allows you to nest scripts. If you put the name of the script that you
want to execute where it says filename, it will execute that script and then
continue. The limit on number of nested scripts is only by available stack
space.
ΓòÉΓòÉΓòÉ 10.2.5. capture_on ΓòÉΓòÉΓòÉ
capture_on("filename");
Captures all screen output to a file. Replace filename with the name of the
file you want the output written to. The capture file will be automatically
closed when you log off, if you have Monitor_DCD selected.
ΓòÉΓòÉΓòÉ 10.2.6. capture_off ΓòÉΓòÉΓòÉ
capture_off();
Stops screen capture and closes the capture file. You can also close the
capture file from the menu.
ΓòÉΓòÉΓòÉ 10.2.7. shell ΓòÉΓòÉΓòÉ
shell("\path\filename.ext");
Allows you to call an external program to run from a script.
ΓòÉΓòÉΓòÉ 10.3. 'C' Functions ΓòÉΓòÉΓòÉ
These are the functions that are included in the cpmcomms and cpmcomml
libraries. The cpmcomms.lib is a small model library and the cpmcomml.lib is a
large model library. The cpmcomm.h file has function definitions and should be
included in any program that uses the cpmcomm libraries. The function init_lib
must be called before any other of the library routines are used.
ΓòÉΓòÉΓòÉ 10.3.1. wait_for ΓòÉΓòÉΓòÉ
USHORT wait_for(USHORT argc,CHAR **argv,HFILE port);
Example
USHORT result;
CHAR *argv[2];
CHAR string1[80];
CHAR string2[80];
strcpy(string1,"first name?");
strcpy(string2,"last name?");
argv[0] = string1;
argv[1] = string2;
result = wait_for(2,argv,port);
Description
The above example would wait for either first name?, or last name?, from the
com port. The function will return the index of the string that matched. For
example if the wait_for received last name?, then the result would be 2. You
can specify any number of strings depending on memory available.
Returns
Index of matched string or zero if timeout or error.
ΓòÉΓòÉΓòÉ 10.3.2. wait_fore ΓòÉΓòÉΓòÉ
USHORT wait_fore(USHORT argc,CHAR **argv,HFILE port, HFILE screen_handle);
Example
USHORT result;
CHAR *argv[2];
CHAR string1[80];
CHAR string2[80];
strcpy(string1,"first name?");
strcpy(string2,"last name?");
argv[0] = string1;
argv[1] = string2;
result = wait_for(2,argv,port,screen_handle);
Description
The first example would wait for either first name?, or last name?, from the
com port and echo the out_put to the Pmcomm screen.
Returns
Index of matched string or zero if timeout or error.
ΓòÉΓòÉΓòÉ 10.3.3. put_s ΓòÉΓòÉΓòÉ
USHORT put_s(char *string,HFILE port);
Example
put_s("first name",port);
Description
This call will send string out to port. In the above example first name will
be sent to the com port. If screen_handle is specified instead of port then
the string will be sent to the Pmcomm screen.
Returns
Length of string actually written.
ΓòÉΓòÉΓòÉ 10.3.4. sleep ΓòÉΓòÉΓòÉ
VOID sleep(ULONG time);
Example
sleep(1000L);
Description
This call will delay the program for the amount of milliseconds specified. The
above example will delay the computer for one second.
Returns
None.
ΓòÉΓòÉΓòÉ 10.3.5. beep ΓòÉΓòÉΓòÉ
VOID beep(USHORT frequency,USHORT duration);
Example
beep(495,100);
Description
The above example will beep the speaker.
Returns
None.
ΓòÉΓòÉΓòÉ 10.3.6. os2_shell ΓòÉΓòÉΓòÉ
VOID os2_shell(HFILE port,HFILE port);
Example
os2_shell(port,port);
Description
This command will allow a caller to shell to OS/2, remotely. The first
parameter is input handle and the second is the output handle. In the example
above, the command will receive and send the information to the com port.
Returns
None.
ΓòÉΓòÉΓòÉ 10.3.7. init_lib ΓòÉΓòÉΓòÉ
USHORT init_lib(int argc,char **argv);
Example
main(argc,argv)
{
init_lib(argc,argv);
...
}
The init_lib function will initialize some global variables that are passed on
the command line. These variables are:
USHORT port;
CHAR portname[15];
HFILE dde_output,dde_input;
HFILE screen_handle;
This function must be called before any other library function is called.
Returns
1 if sucessful and 0 if not.
ΓòÉΓòÉΓòÉ 10.3.8. 'C' set_download_path ΓòÉΓòÉΓòÉ
VOID set_download_path(char *path);
Example
set_download_path("c:\pmcomm");
Description
The above example will set the download path to c:\pmcomm. This will store all
of the files received in that directory.
Returns
None.
ΓòÉΓòÉΓòÉ 10.3.9. setcom ΓòÉΓòÉΓòÉ
SHORT setcom(char *baud,UCHAR parity,UCHAR data_bit,UCHAR stop_bits,HFILE
port);
Example
setcom("2400",'N',8,1,port);
Description
This would set the com port to 2400 baud, no parity, 8 data bits, 1 stop bit.
Baud can be from 300 to 19200 with the standard OS/2 device driver. Parity can
be N(none), O(odd), E(even), M(marked), or S(spaced). Data bits can be 5, 6, 7
or 8. Stop bits can be 1 or 2 (2 can only be used with 5 data bits). If the
baud parameter is an empty string i.e. setcom("",'E',7,1,port) this leave the
baud at the current rate but set the line characteristics to 7, Even, 1.
Returns
1 if successful and 0 if unsuccessful.
ΓòÉΓòÉΓòÉ 10.3.10. sendb ΓòÉΓòÉΓòÉ
VOID sendb(LONG length,HFILE port);
Example
sendb(300L,port);
Description
This call sends a break signal a certain time in milliseconds. The above
example would send a break signal for 300 milliseconds. This call is mostly
used to establish direct connects (not using a modem). Three hundred
milliseconds should be okay for most situations.
Returns
None.
ΓòÉΓòÉΓòÉ 10.3.11. dcd ΓòÉΓòÉΓòÉ
USHORT dcd(HFILE port);
Example
dcd(port);
Description
This call checks to see if there is a carrier detected on the modem. You can
use this to see if Pmcomm is still online to a remote computer. For this
information to be correct the modem must support dcd and the modem must be
configured to support dcd. To find the command refer to your owner's manual.
Returns
1 if carrier detected and 0 if no carrier.
ΓòÉΓòÉΓòÉ 10.3.12. char_avail ΓòÉΓòÉΓòÉ
USHORT char_avail(HFILE port);
Example
char_avail(port);
Description
This call checks to see how many characters are available in the device
drivers receive buffer. You can use this function to check to see if the
device driver has received any characters from the com port.
Returns
Number of characters in device driver receive queue.
ΓòÉΓòÉΓòÉ 10.3.13. read_timeout ΓòÉΓòÉΓòÉ
read_timeout(USHORT timeout,HFILE port);
Example
read_timeout(20000,port);
Description
This call sets the length of time (in milliseconds) that wait_for, wait_fore,
get_ch will wait for a character from the com port. The above example will
make the functions wait for 20 seconds.
Returns
1 if successful and 0 if unsuccessful.
ΓòÉΓòÉΓòÉ 10.3.14. get_ch ΓòÉΓòÉΓòÉ
CHAR get_ch(HFILE port);
Example
ch = get_ch(port);
Description
This call will get a character from the com port. If no character is available
by the time set with read_timeout the function will return with a value of -1.
Otherwise the function will return with the character read.
Returns
char value if successful and -1 if unsuccessful.
ΓòÉΓòÉΓòÉ 10.3.15. ring_detect ΓòÉΓòÉΓòÉ
USHORT ring_detect(HFILE port);
Example
ring_detect(port);
Description
This call can be used to inform a program if the phone is ringing.
Returns
1 if ring detected, 0 if no ring.
ΓòÉΓòÉΓòÉ 10.3.16. drop_dtr ΓòÉΓòÉΓòÉ
VOID drop_dtr(HFILE port);
Example
drop_dtr(port);
Description
This call is usually used to make a modem hang up. The modem must be
configured to allow this. To find the command for your modem, check your
owner's manual. Dtr needs to be dropped for about 2-3 seconds to make sure the
modem sees the drop in DTR. After that length of time raise_dtr can be called
to bring DTR back up. On a Hayes 2400 the above command will also keep the
modem from doing an auto answer until you raise_dtr again.
Returns
None.
ΓòÉΓòÉΓòÉ 10.3.17. raise_dtr ΓòÉΓòÉΓòÉ
VOID raise_dtr(HFILE port);
Example
raise_dtr(port);
Description This call is usually used after drop_dtr to allow the modem to
process commands and enable it to answer the phone.
Returns
None.
ΓòÉΓòÉΓòÉ 10.3.18. get_cursor_position ΓòÉΓòÉΓòÉ
USHORT get_cursor_position(char *str);
Example
get_cursor_position("column");
Description
The above will return the column that the cursor is in. To get the current
row, you would issue this call with "row" instead of "column". The row value
that is returned is relative to the top of the scroll back buffer. The top row
of the scroll back buffer and the first column would be 0,0.
Returns
Cursor position.
ΓòÉΓòÉΓòÉ 10.3.19. get_char_at ΓòÉΓòÉΓòÉ
VOID get_char_at(USHORT row,USHORT col,USHORT num,char *returnstr);
Example
get_char_at(0,0,80,str);
Description
The above will return the characters at the first line (stored in str) of the
scroll back buffer. It will return 80 characters, even if the characters are
spaces. The maximum number of characters that can be returned at one time is
200.
Returns
None.
ΓòÉΓòÉΓòÉ 10.3.20. 'C'capture_on ΓòÉΓòÉΓòÉ
USHORT capture_on(filename);
Example
capture_on("c:\pmcomm\cap.txt");
Description
The above will turn capture on so that everything will be saved into a file.
If you have strip ANSI configured in Pmcomm then the text only will be saved
in ANSI, and VT100 terminal emulation.
Returns
1 if successful and 0 if not.
ΓòÉΓòÉΓòÉ 10.3.21. 'C' capture_off ΓòÉΓòÉΓòÉ
VOID capture_off(VOID);
Example
capture_off();
Description
The above will turn capture off. The capture may have been started from a
script or from the menu.
Returns
1 if successful and 0 if not.
ΓòÉΓòÉΓòÉ 10.3.22. xmodem_send ΓòÉΓòÉΓòÉ
USHORT xmodem_send(char *filename);
Example
xmodem_send("d:\path\filename.ext");
Description
This call will invoke the Xmodem_CRC send routine, built into Pmcomm. Once
issued the call will not return until the transfer either finishes or is
aborted. Pmcomm will show the normal transfer box that it does when download
is selected from the menu.
Returns
1 if the transfer is successful and 0 if unsuccessful.
ΓòÉΓòÉΓòÉ 10.3.23. xmodem_receive ΓòÉΓòÉΓòÉ
USHORT xmodem_receive(char *filename);
Example
xmodem_receive("d:\path\filename.ext");
Description
This call will invoke the Xmodem_CRC receive routine, built into Pmcomm. Once
issued the call will not return until the transfer either finishes or is
aborted. Pmcomm will show the normal transfer box that it does when uploading
from the menu. The file name specified must include a path.
Returns
1 if transfer is successful and 0 if unsuccessful.
ΓòÉΓòÉΓòÉ 10.3.24. xmodem_chk_send ΓòÉΓòÉΓòÉ
USHORT xmodem_chk_send(char *filename);
Example
xmodem_chk_send("d:\path\filename.ext");
Description
This call will invoke the Xmodem_Checksum send routine, built into Pmcomm.
Once issued the call will not return until the transfer either finishes or is
aborted. Pmcomm will show the normal transfer box that it does when download
is selected from the menu.
Returns
1 if transfer is successful and 0 if unsuccessful.
ΓòÉΓòÉΓòÉ 10.3.25. xmodem_chk_receive ΓòÉΓòÉΓòÉ
USHORT xmodem_chk_receive(char *filename);
Example
xmodem_chk_receive("d:\path\filename.ext");
Description
This call will invoke the Xmodem_Checksum receive routine, built into Pmcomm.
Once issued the call will not return until the transfer either finishes or is
aborted. Pmcomm will show the normal transfer box that it does when uploading
from the menu. The file name specified must include a path.
Returns
1 if transfer is successful and 0 if unsuccessful.
ΓòÉΓòÉΓòÉ 10.3.26. xmodem_1k_send ΓòÉΓòÉΓòÉ
USHORT xmodem_1k_send(char *filename);
Example
xmodem_1k_send("d:\path\filename.ext");
Description
This call will invoke the 1K-Xmodem send routine, built into Pmcomm. Once
issued the call will not return until the transfer either finishes or is
aborted. Pmcomm will show the normal transfer box that it does when download
is selected from the menu.
Returns
1 if transfer is successful and 0 if unsuccessful.
ΓòÉΓòÉΓòÉ 10.3.27. xmodem_1k_receive ΓòÉΓòÉΓòÉ
USHORT xmodem_1k_receive(char *filename);
Example
xmodem_1k_receive("d:\path\filename.ext");
Description
This call will invoke the 1K-Xmodem receive routine, built into Pmcomm. Once
issued the call will not return until the transfer either finishes or is
aborted. Pmcomm will show the normal transfer box that it does when uploading
from the menu. The file name specified must include a path.
Returns
1 if transfer is successful and 0 if unsuccessful.
ΓòÉΓòÉΓòÉ 10.3.28. ymodem_send ΓòÉΓòÉΓòÉ
USHORT ymodem_send(USHORT num_files,CHAR **filearray);
Example
USHORT result;
CHAR *filearray[2];
CHAR string1[80];
CHAR string2[80];
strcpy(string1,"pmcom106.zip");
strcpy(string2,"pmcom107.zip");
filearray[0] = string1;
filearray[1] = string2;
result = ymodem_send(2,filearray);
Description
This call will invoke the Ymodem send routine, built into Pmcomm. Once issued
the call will not return until the transfer either finishes or is aborted.
Pmcomm will show the normal transfer box that it does when download is
selected from the menu. As many as 8 files can be sent at one time.
Returns
Number of files successfully transferred.
ΓòÉΓòÉΓòÉ 10.3.29. ymodem_receive ΓòÉΓòÉΓòÉ
USHORT ymodem_receive(VOID);
Example
ymodem_receive();
Description
This call will invoke the Ymodem receive routine, built into Pmcomm. Once
issued the call will not return until the transfer either finishes or is
aborted. Pmcomm will show the normal transfer box that it does when uploading
from the menu. Only a single file at a time will be accepted.
Returns
1 if call is successful and 0 if unsuccessful.
ΓòÉΓòÉΓòÉ 10.3.30. ymodemg_send ΓòÉΓòÉΓòÉ
USHORT ymodemg_send(USHORT num_files, CHAR **filearray);
Example
USHORT result;
CHAR *filearray[2];
CHAR string1[80];
CHAR string2[80];
strcpy(string1,"pmcom106.zip");
strcpy(string2,"pmcom107.zip");
filearray[0] = string1;
filearray[1] = string2;
result = ymodemg_send(2,filearray);
Description
This call will invoke the Ymodem-g send routine, built into Pmcomm. Once
issued the call will not return until the transfer either finishes or is
aborted. Pmcomm will show the normal transfer box that it does when
downloading from the menu. As many as 8 files can be sent at one time.
Returns
Number of files successfully transferred.
ΓòÉΓòÉΓòÉ 10.3.31. ymodemg_receive ΓòÉΓòÉΓòÉ
USHORT ymodemg_receive(VOID);
Example
ymodemg_receive();
Description
This call will invoke the Ymodem-g receive routine, built into Pmcomm. Once
issued the call will not return until the transfer either finishes or is
aborted. Pmcomm will show the normal transfer box that it does when uploading
from the menu. Only one file at a time can be received.
Returns
1 if call is successful and 0 if unsuccessful.
ΓòÉΓòÉΓòÉ 10.3.32. zmodem_send ΓòÉΓòÉΓòÉ
USHORT zmodem_send(USHORT num_files, CHAR **filearray);
Example
USHORT result;
CHAR *filearray[2];
CHAR string1[80];
CHAR string2[80];
strcpy(string1,"pmcom106.zip");
strcpy(string2,"pmcom107.zip");
filearray[0] = string1;
filearray[1] = string2;
result = zmodem_send(2,filearray);
Description
This call will invoke the Zmodem send routine, built into Pmcomm. Once issued
the call will not return until the transfer either finishes or is aborted.
Pmcomm will show the normal transfer box that it does when downloading from
the menu. As many as 100 files may be transferred at one time.
Returns
Number of files successfully transferred.
ΓòÉΓòÉΓòÉ 10.3.33. zmodem_receive ΓòÉΓòÉΓòÉ
USHORT zmodem_receive(VOID);
Example
zmodem_receive();
Description
This call will invoke the Zmodem receive routine, built into Pmcomm. Once
issued the call will not return until the transfer either finishes or is
aborted. Pmcomm will show the normal transfer box that it does when uploading
from the menu. Only one file at a time can be received.
Returns
The number of files transferred.
ΓòÉΓòÉΓòÉ 10.3.34. kermit_send ΓòÉΓòÉΓòÉ
USHORT kermit_send(USHORT num_files, CHAR **filearray);
Example
USHORT result;
CHAR *filearray[2];
CHAR string1[80];
CHAR string2[80];
strcpy(string1,"pmcom106.zip");
strcpy(string2,"pmcom107.zip");
filearray[0] = string1;
filearray[1] = string2;
result = kermit_send(2,filearray);
Description
This call will invoke the Kermit send routine, built into Pmcomm. Once issued
the call will not return until the transfer either finishes or is aborted.
Pmcomm will show the normal transfer box that it does when downloading from
the menu. As many as 100 files may be transferred at one time.
Returns
Number of files successfully transferred.
ΓòÉΓòÉΓòÉ 10.3.35. kermit_receive ΓòÉΓòÉΓòÉ
USHORT kermit_receive(VOID);
Example
kermit_receive();
Description
This call will invoke the Kermit receive routine, built into Pmcomm. Once
issued the call will not return until the transfer either finishes or is
aborted. Pmcomm will show the normal transfer box that it does when uploading
from the menu. Only one file at a time can be received.
Returns
Number of files transferred.
ΓòÉΓòÉΓòÉ 10.3.36. ascii_send ΓòÉΓòÉΓòÉ
USHORT ascii_send(char *filename);
Example
ascii_send("d:\path\filename.ext");
Description
This call will invoke the ASCII send routine, built into Pmcomm. Once issued
the call will not return until the transfer either finishes or is aborted.
Pmcomm will show the normal transfer box that it does when downloading from
the menu.
Returns
1 if transfer is successful and 0 if unsuccessful.
ΓòÉΓòÉΓòÉ 10.3.37. ascii_receive ΓòÉΓòÉΓòÉ
USHORT ascii_receive(filename);
Example
ascii_receive("d:\path\filename.ext");
Description
This call will invoke the ASCII receive routine, built into Pmcomm. Once
issued the call will not return until the transfer either finishes or is
aborted. Pmcomm will show the normal transfer box that it does when uploading
from the menu. The file name specified must not include a path.
Returns
1 if transfer is successful and 0 if unsuccessful.
ΓòÉΓòÉΓòÉ 10.3.38. cisb_send ΓòÉΓòÉΓòÉ
USHORT cisb_send(char *filename);
Example
cisb_send("d:\path\filename.ext");
Description
This call will invoke the CISB send routine, built into Pmcomm. Once issued
the call will not return until the transfer either finishes or is aborted.
Pmcomm will show the normal transfer box that it does when download is
selected from the menu.
Returns
1 if the transfer is successful and 0 if unsuccessful.
ΓòÉΓòÉΓòÉ 10.3.39. cisb_receive ΓòÉΓòÉΓòÉ
USHORT cisb_receive(char *filename);
Example
cisb_receive("d:\path\filename.ext");
Description
This call will invoke the CISB receive routine, built into Pmcomm. Once issued
the call will not return until the transfer either finishes or is aborted.
Pmcomm will show the normal transfer box that it does when uploading from the
menu. The file name specified must include a path.
Returns
1 if transfer is successful and 0 if unsuccessful.
ΓòÉΓòÉΓòÉ 10.4. Sample Scripts ΓòÉΓòÉΓòÉ
These are scripts to help you, when you start to write your own scripts.
ΓòÉΓòÉΓòÉ 10.4.1. REXX Sample ΓòÉΓòÉΓòÉ
/* Sample Script*/
/* This script will allow you to log on to Compu-Plane once you change the
strings stored in the variables called name and pass. Enter the sample.scr
name for the script name of the Compu-Plane phone number, and change the name
in the shell( ) function to the path and filename of this file.*/
Call RxFuncadd "init_dll","RxPmcomm","init_dll"
/* This function registers the init_dll function with REXX. The init_dll
function will register the rest of the functions in the rxpmcomm.dll. */
Parse arg port portname screen_handle dde_output dde_input semaphore
/*These are the values that Pmcomm passes on the command line to an external
program. These values can then be used in different REXX functions along with
the rxpmcomm.dll functions. Following is the description of each value: */
/* port = The handle of the open com port in Pmcomm */
/* portname = The name of the opened com port ie.. COM1*/
/* screen_handle = Anything written to the handle will be printed on the
Pmcomm screen. */
/* dde_input = This must be passed to most functions. It allows the
rxpmcomm.dll function to communicate with Pmcomm. */
/* dde_output = This must be passed to most functions. It allows the
rxpmcomm.dll function to communicate with Pmcomm. */
/* semaphore = This also must be passed to any file transfer function. It
makes your REXX program wait until the transfer has been completed. */
Call init_dll
/* Required before any other rxpmcomm.dll functions are called. */
/* Setup variables */
name = 'first;last' /* where first is your first name and last is*/
pass = 'password' /* your last name and password is your password.*/
cr = '0d'x
Call read_timeout '20000',port
/* This sets the read timeout for 20 seconds. This is used in the Wait_for,
Wait_fore, and the Get_ch functions. */
Say 'Waiting for first name ...'
/* This will be printed on the REXX screen. */
Do Forever
Call Wait_fore 'name', 'password', 'continue?','?->', port, screen_handle
/* This call will echo all characters to the Pmcomm screen that come from the
open com port. When one of the strings are matched the function will return
the index of the matched string in the variable result. For example if it
receives the string password then the result will be equal to 2. If the
function waits longer then the read timeout value then result will be equal to
0. */
match = result
Select
When match=1 then
Do
Call Put_s name||cr,port
Say 'Waiting for password ...'
End
When match=2 then Call Put_s pass||cr,port
When match=3 then Call Put_s cr,port
When match=4 then Exit
Otherwise nop
End
End
Say 'Script ended -' date( ) time( )
Exit
ΓòÉΓòÉΓòÉ 10.4.2. Internal Sample ΓòÉΓòÉΓòÉ
An example script to log onto a Multi-Net Communications BBS could be:
wait_for ("first name");
puts ("john\n");
wait_for("last name");
puts("doe\n");
wait_for("password");
puts("password\n");
sleep (1000);
puts("\n");
Scripts can be executed automatically when logging onto a BBS by specifying
the script filename in the dialing directory for that phone number. You can
execute a script from the File menu at anytime.
ΓòÉΓòÉΓòÉ 11. Installing Pmcomm Host Mode ΓòÉΓòÉΓòÉ
To install Pmcomm's Host Mode, change to the Pmcomm directory and run the
host.exe program. The first prompt will ask you to enter the maximum baud rate
of your modem. At the next prompt you must enter the number of selection that
matches your modem the closest. If you are unsure of which selection to make,
choose the Hayes 2400 modem as your selection. Next, you must enter the path,
including drive, of where you wish to install the Host Mode. When prompted,
enter your first name, last name, and password. The install program
automatically creates a password file in the necessary format. If this is an
"open" system new users will be stored in this file automatically. If this is a
"closed" system only the people that are registered in this file will be able
to access the Host Mode.
The six files that the install program creates are HOSTPASS.FLE, HOSTDIR.FLE,
HOSTHEAD.FLE, HOST.SCR, HOSTNEWU.FLE, and HOSTHELP.FLE. The HOSTPASS.FLE file
is where all of the users' names, passwords, securities, and last time on are
stored. The HOSTDIR.FLE file is a list of the directories that have been
created for the host mode. The HOSTHEAD.FLE file is the file that is displayed
to users when they logon. The HOST.SCR file is the main executable script. The
HOSTNEWU.FLE file is the file that is displayed to new users. In order for a
user to be able to receive help from the menu, the HOSTHELP.FLE must contain
the information that will be displayed.
ΓòÉΓòÉΓòÉ 12. How To... ΓòÉΓòÉΓòÉ
This section gives you examples of how to set Pmcomm up to do different things.
ΓòÉΓòÉΓòÉ 12.1. How to make Pmcomm receive incoming calls. ΓòÉΓòÉΓòÉ
To make Pmcomm receive an incoming call without using the Host Mode, send the
following command to the modem.
ATS0=1
ΓòÉΓòÉΓòÉ 12.2. How to Use Pmcomm with a modem pool. ΓòÉΓòÉΓòÉ
Because Pmcomm does not use ACDI, and will allow you to enter any valid 12
character name for a device, it will work with a shared serial port modem pool.
This allows you to have modems on a server that users can access from their
workstations. This can save a considerable about of money.
First the ibmlan.ini file, on the Server and the Requesters, must be edited in
order to operate Pmcomm in a modem pool. The "charwait" variable must be
changed from it's default setting of 3600 to a setting of 3 and then re-boot
the Server and all of the Requesters.
The following is a flash from IBMLink on how to setup a modem pool using Pmcomm
and Lan Server.
The rest of this scenario concerns the OS/2 LAN Server definitions. When LAN
Server definitions and actions are complete, defined users at any OS/2
Requestor can run the program from the OS/2 Public Applications Window. The
serial port and modem at the LAN Server will be shared. To begin, logon as an
administrator in the proper domain. Then follow instructions for the following:
a. Defining the shared modem
b. Defining the shared program files
c. Defining the program as a public OS/2 application
d. Defining the working directory
e. Sharing the modem and the program
f. Assigning the modem and the program to the users as they log on.
DEFINING THE SHARED MODEM
Follow this sequence:
DEFINITION
ALIASES
SERIAL DEVICES
--NEW-- (With cursor on --NEW--, press space bar to
choose, press enter or click on ACTION)
CREATE(Create a serial device alias - I used an
alias of MODEM1, chose COM1 from the device
pool using F4 for the list, and choose to
share the port at server startup)
*-----------------------------------------------------------*
Create Alias - Serial Device
Complete the panel; then Enter.
Alias . . . . . . . . . . . . . . . MODEM1
Description . . . . . . . . . . . . Shared modem
Server Name . . . . . . . . . . . . Chosen with the F4 key
Server Device Pool. . . . . . . . . COM1
Priority. . . . . . . . . . . . . . 5 (chosen arbitrarily)
Maximum number of users . . . . . . (Number of shared serial ports)
When shared . . . . . . . . . > At server startup
|-----------------------------------------------------------|
ENTER Escape=Cancel F1=Help F4=List
*-----------------------------------------------------------*
DEFINING THE SHARED PROGRAM FILES
Follow this sequence:
DEFINITION
ALIASES
FILES
--NEW-- (With cursor on --NEW--, press space bar to
choose, press enter or click on ACTION)
CREATE (Create the file alias)
*---------------------------------------------------------*
Create Alias - Files
Complete the panel; then Enter.
Alias . . . . . . . . . . . . . . . PMCOMM
Description . . . . . . . . . . . . Program to access shared modem
Server Name . . . . . . . . . . . . Chosen with the F4 key
Server Path to Directory. . . . . . :OS2:ASYNC:PMCOMM
Maximum number of users . . . . . . (left blank)
When shared . . . . . . . . . > At server startup
|---------------------------------------------------------|
ENTER Escape=Cancel F1=Help F4=List
*---------------------------------------------------------*
DEFINING THE PROGRAM AS A PUBLIC OS/2 APPLICATION
Follow this sequence:
DEFINITION
APPLICATION
PUBLIC OS/2 APPLICATION
--NEW-- (With cursor on --NEW--, press space bar to
choose, press enter or click on ACTION)
CREATE
*----------------------------------------------------------*
Create OS/2 Application Details
Complete the panel; then Enter.
Application ID. . . . . . . . . . . PMCOMMX
Description . . . . . . . . . . . . Shared modem communications
Program location. . . . . . . . . . Remote
Drive or alias. . . . . . . . . . . PMCOMM
Remaining path to program . . . . . :
Command line. . . . . . . . . . . . PMCOMM.EXE
Prompt used for parameters? . . . . NO
Program type. . . . . . . . . . . . OS/2 PM
|----------------------------------------------------------|
ENTER Escape=Cancel F1=Help F4=List
*----------------------------------------------------------*
DEFINING THE WORKING DIRECTORY
PMCOMM has support files that should reside in the working directory at
the server. If this directory is not assigned, each user must have these
files on their own disk.
Follow this sequence:
DEFINITION
APPLICATION
PUBLIC OS/2 APPLICATION
--PMCOMMX-- (With cursor on --PMCOMMX--, press space
bar to choose, press enter or click on
ACTION)
WORKING DIRECTORY
*---------------------------------------------------------*
Working Directory
Complete the panel; then Enter.
Working Directory . . . . . . . . . REMOTE
Drive or alias. . . . . . . . . . . PMCOMM
Remaining path to program . . . . . :
Assigned Drive. . . . . . . . . . . P (chosen arbitrarily)
|---------------------------------------------------------|
ENTER Escape=Cancel F1=Help F4=List
*---------------------------------------------------------*
SHARING THE PROGRAM AND THE MODEM
Follow this sequence:
ACTION
RESOURCE SHARING
--PMCOMM-- (With cursor on --PMCOMM--, press spacebar
to choose, press enter or click on ACTION)
START SHARING
--MODEM1-- (With cursor on --MODEM1--, press spacebar
to choose, press enter or click on ACTION)
START SHARING
ASSIGNING RESOURCES TO USERS AS THEY LOG ON
Follow this sequence for each user, to assign MODEM1 as a user
logs on:
DEFINITION
USERS
-- User -- (With cursor on the user name, press F10)
LOGON
SERIAL DEVICE ASSIGNMENTS
Assign MODEM1 to a COM port
Follow this sequence for each user, to copy the program to the user's
START PROGRAMS window:
DEFINITION
USERS
-- User -- (With cursor on the user name, press spacebar
to choose, press enter or click on ACTION)
PROGRAM STARTER
--PMCOMMX-- (With cursor on --PMCOMMX-- press the
spacebar to choose)
ΓòÉΓòÉΓòÉ 12.3. How to Use Pmcomm with IBMLink. ΓòÉΓòÉΓòÉ
If you have access to IBMLink (ask an IBM SE) you can use Pmcomm to call. The
first thing you will need is a phone number that will work with Pmcomm. This
type of number is call, an SS/EFS number. This stands for, Start Stop Enhanced
Full Screen. It allows access to IBMLink through a 3708 protocol converter. To
find a number in your area, ask your IBM SE, or order book number GC-34-22-34.
It has a current list of all the public IBMLink phone numbers in it.
Once you have the required phone number, you can add it to the Pmcomm dialing
directory. You should set the Parity to Even,the Data bits to 7, and the Stop
bits to 1. The terminal type should be set to VT100. Once connected you will
see a prompt that asks you for your terminal type. If you press enter now it
will display a list of available terminals. The best choice here is to select
VT220, which is selection 18. Pmcomm supports most of the VT220 commands when
in VT100 mode, and it supports all that are used with IBMLink. By selecting
VT220 you are able to use additional commands that are not available with
VT100. If you select VT220 the first nine PF keys will be the numeric key pad
keys (the num lock must be off). For example, PF1 will be the 1 on the key pad,
PF2 will be 2 and so on. For PF10 it will be the F1 key, PF11 will be the F2
key and PF12 will be the F3 key. To do a reset press the Ctrl-R and to do a
clear press the Ctrl-C.
Once logged onto IBMLink just follow the prompts and you shouldn't have any
problem.
ΓòÉΓòÉΓòÉ 12.4. How to Use Pmcomm with ESDTools. ΓòÉΓòÉΓòÉ
Once you are logged onto ESDTools and have selected the files you wish to
receive, press the PF9 key (using VT220 this is the 9 on the numeric keypad).
ESDTools will then ask you which drive you will be receiving the file to.
Choose any drive as this parameter will be ignored by Pmcomm. You will then be
prompted for the operating system, select OS/2. The last selection will be for
the type of connection (i.e. Asynch ect...), select the appropriate connection
type. ESDTools will then tell you not to press the enter key until prompted to
do so by your communications software. At this time select Transfer, Download
from the Pmcomm menu. Once the transfer has completed you can then press the
enter key to return to the file list menu.
ΓòÉΓòÉΓòÉ 12.5. How to Use a REXX program as a script. ΓòÉΓòÉΓòÉ
A REXX program can be executed from Pmcomm by entering the name of the program
name directly into the dialing_directory or from the start script menu. A REXX
program can also be started by using the shell command in a macro. An example
of this would be:
shell("c:\pmcomm\plane.cmd");
This would execute the REXX script called plane.cmd. This allows you a quick
and easy way to execute often used scripts.
ΓòÉΓòÉΓòÉ 12.6. How to Use drag and drop. ΓòÉΓòÉΓòÉ
When files are dragged from the file manager and dropped onto Pmcomm's terminal
emulation screen, the transfer protocol that is listed for that phone number
will be invoked and the file(s) will be sent to the remote computer. If you
have Monitor_DCD selected then drag options will not be allowed until connected
with another computer.
To drag files from the file manager, select a file (or files) and then click on
the selected file(s) with the RIGHT mouse button and hold the button down. Once
you have begun to drag the files with the mouse the mouse pointer will change
shape. If the mouse pointer is over a program that does not accept drag and
drop the pointer will again change shape. When the mouse pointer is over any
part of Pmcomm you can release the right mouse button. This will drop the files
onto Pmcomm and Pmcomm will send them. This will even work if Pmcomm is an
icon.
To change the protocol for the current phone number, select upload from the
menu and then select the protocol you want (make sure that the save to dialing
directory is selected). After pressing the OK button the file open dialog box
will be displayed. Just press cancel and you can now use the drag and drop with
the new protocol.
If a file is dropped onto Pmcomm while it is an icon in a group menu, this file
will be used as a setup file, and Pmcomm will be invoked.
The drag and drop feature is also available for two of the icons on the Status
Line. For more information see Status_Line.
ΓòÉΓòÉΓòÉ 13. Troubleshooting. ΓòÉΓòÉΓòÉ
Following are some problems that may occur when using Pmcomm.
ΓòÉΓòÉΓòÉ 13.1. Device Open error. ΓòÉΓòÉΓòÉ
This message is displayed if Pmcomm can not open the specified device. If you
are trying to open COM1, for example, and another program already has it open
then this message will be displayed. If you are using the com ports on the
machine you are running Pmcomm on (not across a LAN). Then you must have the
com port device driver installed. There are two device drivers supplied with
OS/2, com02.sys (for IBM PS/2's), and com01.sys for AT class machines. If you
are running a PS/2, for example, you should have a statement in your config.sys
file, DEVICE=C:\OS2\COM02.SYS. If not you will get the device open error. The
default when installing OS/2 is not to install the device driver, so make sure
that you either have, DEVICE=C:OS2\COM02.SYS or DEVICE=C:\OS2\COM01.SYS in your
config.sys file.
If you get this message when trying to access a com port on a server, refer to
the Modem_Pool section. One of the common problems is not first logging onto
the network before trying to access the com port. Also make sure you use Alias
names that don't conflict with names on the local machine. For example don't
try to use the name COM1 for the name of the remote com port. Instead use a
name like MODEM1 or PMCOMM1.
ΓòÉΓòÉΓòÉ 13.2. File transfers not available. ΓòÉΓòÉΓòÉ
If you have Monitor_DCD turned on under Port Options and Pmcomm does not detect
DCD then the upload and download options will be greyed out. You can turn the
Monitor DCD option off and you will then be able to transfer files. Some common
reasons for Pmcomm not being able to detect are:
Serial cable that does not support the DCD line.
Modem not configured to have DCD follow the state of the phone line.
Modem does not support DCD.
The monitor DCD option should also be turned off if using Pmcomm with a modem
pool.
ΓòÉΓòÉΓòÉ 13.3. Pmcomm will not dial out. ΓòÉΓòÉΓòÉ
The most common cause of this is a DOS program that has corrupted the com port.
Compiled basic program that are executed in the DOS box, for example, will
sometime poll the available devices. When this happens the com device driver is
effected and Pmcomm will not be able to send information to the com port. When
this happens you will have to IPL (boot) the computer.
ΓòÉΓòÉΓòÉ 13.4. Typed characters do not echo to the screen. ΓòÉΓòÉΓòÉ
Some electronic information services, such as Genie, run in what is called
"half-duplex" mode. When in this mode the typed characters are not echoed to
the screen. Pmcomm's default mode is "full duplex" which lets the services,
like Genie, echo the characters to the screen. To make Pmcomm echo the typed
characters to the screen, select the Screen dialog box under the main Options
menu and check local echo on.
ΓòÉΓòÉΓòÉ 13.5. Help not available. ΓòÉΓòÉΓòÉ
This message will be displayed if Pmcomm can not find the pmcomm.hlp file in
the current directory. If you have Pmcomm installed in a Group menu make sure
that you have the working directory set to the directory that Pmcomm is
installed in.
ΓòÉΓòÉΓòÉ 13.6. Pmcomm locks with a shared serial port. ΓòÉΓòÉΓòÉ
If Pmcomm locks up when trying to access a shared serial port you must edit the
ibmlan.ini file in the Server well as all of the Requesters. Change the
variable "charwait" from its default of 3600, to 3 and then re-boot the Server
and all of the Requesters.